{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <center>豆瓣图书分析</center>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import types\n",
    "import re"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1. 爬取某图书⽹网站，得到图书数据，并导入pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pymysql"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "conn = pymysql.connect(host='localhost', user='root', password='1999.04.25', db='book', charset='utf8')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002.4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998-01-01</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007-4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000-1</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                  2002.4   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                    2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社              1998-01-01   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                  2007-4   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                        2000-1   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sql = 'select * from book;'\n",
    "data = pd.read_sql(sql, conn)\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>224630</th>\n",
       "      <td>419807</td>\n",
       "      <td>3869737</td>\n",
       "      <td>瑞典语三百句</td>\n",
       "      <td>王梦达|（瑞）Lars|Bergman</td>\n",
       "      <td>北京大学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2009-6-1</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787301152140</td>\n",
       "      <td>250 页</td>\n",
       "      <td>25.00元</td>\n",
       "      <td>None</td>\n",
       "      <td>24</td>\n",
       "      <td>8.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224631</th>\n",
       "      <td>419810</td>\n",
       "      <td>4250737</td>\n",
       "      <td>大爭之世 卷四：大盜本色</td>\n",
       "      <td></td>\n",
       "      <td>高寶</td>\n",
       "      <td></td>\n",
       "      <td>2010年01月20日</td>\n",
       "      <td></td>\n",
       "      <td>平裝</td>\n",
       "      <td>9789861854120</td>\n",
       "      <td>304</td>\n",
       "      <td>NTD260</td>\n",
       "      <td>大爭之世</td>\n",
       "      <td>55</td>\n",
       "      <td>7.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224632</th>\n",
       "      <td>419814</td>\n",
       "      <td>11534920</td>\n",
       "      <td>三国机密（下）</td>\n",
       "      <td>马伯庸</td>\n",
       "      <td>江苏人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2012-8</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787214086341</td>\n",
       "      <td>367</td>\n",
       "      <td>36.00元</td>\n",
       "      <td>三国机密</td>\n",
       "      <td>3585</td>\n",
       "      <td>7.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224633</th>\n",
       "      <td>419815</td>\n",
       "      <td>21355149</td>\n",
       "      <td>不存在未出版的错误条目</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>1900</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787102503042</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "      <td>29</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224634</th>\n",
       "      <td>419816</td>\n",
       "      <td>25734399</td>\n",
       "      <td>锦衣夜行5·逍遥游</td>\n",
       "      <td>月关</td>\n",
       "      <td>湖北少年儿童出版社</td>\n",
       "      <td></td>\n",
       "      <td>2013-7</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787535390264</td>\n",
       "      <td>289</td>\n",
       "      <td>25.00元</td>\n",
       "      <td>锦衣夜行</td>\n",
       "      <td>38</td>\n",
       "      <td>7.9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            id       nid         title               author  publisher  \\\n",
       "224630  419807   3869737        瑞典语三百句  王梦达|（瑞）Lars|Bergman    北京大学出版社   \n",
       "224631  419810   4250737  大爭之世 卷四：大盜本色                              高寶   \n",
       "224632  419814  11534920       三国机密（下）                  马伯庸    江苏人民出版社   \n",
       "224633  419815  21355149   不存在未出版的错误条目                                   \n",
       "224634  419816  25734399     锦衣夜行5·逍遥游                   月关  湖北少年儿童出版社   \n",
       "\n",
       "       translators  publication originalname framed           isbn pagenumber  \\\n",
       "224630                 2009-6-1                  平装  9787301152140      250 页   \n",
       "224631              2010年01月20日                  平裝  9789861854120        304   \n",
       "224632                   2012-8                  平装  9787214086341        367   \n",
       "224633                     1900                      9787102503042              \n",
       "224634                   2013-7                  平装  9787535390264        289   \n",
       "\n",
       "         price books numberofreviews score  \n",
       "224630  25.00元  None              24   8.2  \n",
       "224631  NTD260  大爭之世              55   7.3  \n",
       "224632  36.00元  三国机密            3585   7.9  \n",
       "224633          None              29   7.5  \n",
       "224634  25.00元  锦衣夜行              38   7.9  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. 对数据做清洗(缺失值与异常值)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 后面对数据进行分析时会涉及到年份(publication)、评分(score)、价格(price)、出版社(publisher)、作者(author)、评论数量(numberofreviews)\n",
    "##### 每一个数据分析对数据的要求均不同，所以数据清洗我将在每一次数据分析之前单独进行一次清洗\n",
    "#### 这里我只进行将全部都为空的数据清理掉的操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "id                 0\n",
       "nid                0\n",
       "title              0\n",
       "author             0\n",
       "publisher          0\n",
       "translators        0\n",
       "publication        0\n",
       "originalname       0\n",
       "framed             0\n",
       "isbn               0\n",
       "pagenumber         0\n",
       "price              0\n",
       "books              0\n",
       "numberofreviews    0\n",
       "score              0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.isnull().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上面的结果说明没有一列所有数据全为空的数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. 分析书的数量与年份的关系"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(1) 【缺失值】判断与清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "224635"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1 = data[(data['publication']!='') | (data['publication']!=None)]\n",
    "len(data1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "224635"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 上面的结果说明：所有数据都有年份这一列的数据，不需要进行数据【缺失值】的清洗"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（2）数据【异常值】第一次清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "218282"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "i = 0\n",
    "new_data = []\n",
    "for year in data1.publication:\n",
    "    year = str(year)\n",
    "    if re.match('^.*?[0-9]{4}.*$', year)!=None:\n",
    "        new_data.append(data1.iloc[i])\n",
    "    i += 1\n",
    "len(new_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "218282"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data1 = pd.DataFrame(new_data)\n",
    "len(new_data1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002.4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998-01-01</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007-4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000-1</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                  2002.4   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                    2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社              1998-01-01   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                  2007-4   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                        2000-1   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data1.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(3) 统一年份的格式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "218282\n"
     ]
    }
   ],
   "source": [
    "# 下面这一段代码获取书的年份并转为4位数字字符替换原来不同规则的年份，方便后面统计分析\n",
    "publication = []\n",
    "for year in new_data1.publication:\n",
    "    yearstr = str(year)\n",
    "    yearstr = re.search(r'^.*?([0-9]{4}).*$', yearstr).group(1)[:4]\n",
    "    yearstr = int(yearstr)\n",
    "    publication.append(yearstr)\n",
    "print(len(publication))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将new_data1中的 publication 替换成统一后的格式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators  publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                     2002   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                     2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社                     1998   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                     2007   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                           2000   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data1['publication'] = publication\n",
    "new_data1.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（4）数据【异常值】第二次清洗--对年份进行限制"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "new_data1[['publication']].boxplot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由上面的箱线图我们知道：有部分数据的年份存在问题，我们需要除去这部分数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "217746"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1 = new_data1[(new_data1['publication']<=2018) & (new_data1['publication']>=1920)]\n",
    "len(data1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators  publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                     2002   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                     2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社                     1998   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                     2007   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                           2000   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data1.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（5）开始分析年份与数量之间的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,\n",
       "       1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941,\n",
       "       1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952,\n",
       "       1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963,\n",
       "       1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974,\n",
       "       1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,\n",
       "       1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,\n",
       "       1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,\n",
       "       2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.arange(1920, 2019)      # 用来作为所有年份\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = np.zeros(2019-1920, dtype=int)     # 用y来代替每一年书籍的数量，初始值每年都为0\n",
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "99"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "99"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "for n in data1['publication']:\n",
    "    index = 0\n",
    "    for x_data in x:\n",
    "        if n==x_data:\n",
    "            y[index] += 1\n",
    "        index += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([    1,     1,     0,     2,     2,     2,     0,     4,     5,\n",
       "           3,     5,     3,     1,     2,     3,     3,     5,     5,\n",
       "           4,     1,     2,     2,     1,     1,     4,     1,     3,\n",
       "           3,     1,    10,    12,     6,    11,    21,    25,    40,\n",
       "          79,   103,   120,   111,    50,    56,   103,    90,    53,\n",
       "          72,    42,    25,    21,    34,   395,    48,    72,   120,\n",
       "          92,   108,   119,   138,   232,   419,   456,   603,   603,\n",
       "         716,   744,   755,   786,   873,   941,   941,   841,  1039,\n",
       "        1211,  1260,  1426,  1533,  2204,  2717,  3520,  3841,  4411,\n",
       "        5174,  6498,  8293, 10541, 12292, 13636, 14525, 14925, 15691,\n",
       "       15635, 15462, 13433, 10658,  8742,  7672,  6666,  3420,   165])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuQAAAGDCAYAAABjvQUaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8nXWZ///XlT3N0jTN0jZtaUoXKAUESkFxGUDZZARRZ8AFREbG7zAuX8d9viOOy3fUr+PCOOoPlQHEERFRUFmmbG7QlrLTpqWh6ZamSZq0TZp9uX5/nPvAISbNSZtz7rO8n4/HeZxzPvd23SX6uPLJdV8fc3dERERERCQcOWEHICIiIiKSzZSQi4iIiIiESAm5iIiIiEiIlJCLiIiIiIRICbmIiIiISIiUkIuIiIiIhEgJuYhIhjOzR83s7ybYtsjM3Mzygu/3mdlVCYjhB2b2L9N93mQysy+Y2W1hxyEimUcJuYhIgplZoZndamb7zazNzL4TdkwTcfcL3f2WozmHmb3fzP405rwfcvcvHV10IiKZKS/sAERE0pWZ5bn7cBy7vh84FVgMDAKrExmXpL4p/OyISBbQDLmIZBwz+6SZ/XLM2A3RmWkzm2lmPzazFjNrNrMvm1lusO1YM3vYzDrMbJ+Z/dTMKmLOs93MPm1mzwE90VKPSQwBB919v7v3uPsjR3BPbmYfMbNtQVz/z8xygm2vKqUYW4YSONbM1ptZl5ndbWaVE1znVeUtZvZBM2sws24z22RmpwbjnzGzl2LG3x6MHw/8AHitmR0yswPB+M1m9uUx5200s04zu8fM5o251w+Z2VYzO2Bm/2lmNkG8XzCzO4K/QHSb2UYzWzXmXEtivr8ch5n9lZntNrNPBX+5aDGzS83sIjN7MYjtc2MuWWRmPw+u9ZSZnRxz7nlm9kszazezJjP7yJg47zSz28ysi8gvaSIigBJyEclMtwEXRBPpIDG9HLg12H4zMAwsAU4BzgOiSagB/wbMA44HFgBfGHP+K4C3AhVxznI+CZxpZl88stt52duBVURm2y8BPjCFY68M9p9L5N5vmOwAM3sXkXu/EigH3gZ0BJtfAt4AzAT+FbjNzOa6ewPwIeBxdy9194pxznsOkX/jvwni2QHcPma3i4HTgZOC/c4/TKhvC46vAO4BvjvZvcWYAxQBdcDngR8C7wVOC+7vX8ysPmb/S4BfAJXAfwO/NrP84Jej3wDPBuc6F/iYmZ0/5tg7gzh/OoUYRSTDKSEXkYzj7i3AH4B3BUMXAPvc/UkzqwUuAj4WzFa3Ad8ikrDj7o3uvsbdB9y9Hfgm8KYxl7jB3Xe5e99ksQQz0b8hksCfb2ZfiNm228xOnMKtfc3dO919J/BtIr8YxOsn7v6Cu/cA/wL8TfSvAofxd8DX3f0Jj2h09x0A7v4Ld9/j7qPu/nNgK/GX4rwHuMndn3L3AeCzRGbUF8Xs81V3PxDc6yPAaw5zvj+5+73uPgL8BDj5MPuONQR8xd2HiCT1VcB33L3b3TcCm8ac70l3vzPY/5tEkvkzifzyUO3uX3T3QXffRiS5vzzm2Mfd/dfBv9mkPzsikj1UQy4imeoW4H/xyoznT4LxY4B8oCWmCiIH2AUQJOzfITI7WhZs2z/m3LumEMe7gAZ3v9/MngD+EFz3ZiL/H/zCFM4Ve90dRGbxj/TYfCLJ5+EsIDIT/hfM7Erg48CiYKg0jvNFzQOein5x90Nm1kFkZnl7MLw3Zv/e4PwTGbtv0RRqtDuCRB4gmiS3xmzvG3Ptl/8d3X3UzHYTuR8H5kVLdAK5wB/HO1ZEJJZmyEUkU/0aOMnMVhIpf4iWCOwCBoAqd68IXuXufkKw/f8SSa5OdPdyIsn82Ppln0IceUSSX9y9A3gLcBXwAPANd5/KuRbEfF4I7Ak+9wAzYrbNiePYIWDfJNfbBRw7dtDMjiHyi84/ArODspQXeOXfabJ72kPkF6Po+UqA2UDzJMcdiV4m/7eZipf/HYMylflE7mcX0BTzM1Xh7mXuflHMsVP5by0iWUQJuYhkJHfvJ1Kv+9/A+qD0IVrO8j/Av5tZuZnlBA9yRstSyoBDwEEzqwM+eZSh3AucbmZ/b2b5RBLhx4BlRJLFqfikmc0yswXAR4GfB+PPAG80s4VmNpNICchY7zWzFWY2A/gicGfMzPBEfgR8wsxOs4glQTJeQiS5bAcws6uBlTHHtQLzzaxggvP+DLjazF5jZoVEfgla5+7bJ4nnSDwDvNvMcs3sAv6y/GiqTjOzy4LnEj5G5Je7tcB6oNsiD/wWB9dbaWanH+X1RCQLKCEXkUx2C3Air5SrRF0JFBCpD95PJHGfG2z7VyIPTR4EfgfcdTQBuHsTcGFwzQ4iD/21AmcDXwuSxHjdTeQB0WeC2H4cXGMNkeT8uWD7b8c59idEymT2Eql7/sg4+4yN/RfAV4j8UtNN5K8Ole6+Cfh34PHgXk4E/hxz6MPARmCvmf3FLLy7P0ikjv2XQAuRWfjLx+43TT4K/DVwgEjt+q+P8nx3A39L5OfmfcBl7j4U/HJzMZFa9yYif334EZGHXkVEDsum9tdSEZH0YWYLgc3AHHfvCjueo2FmDix198awYxERkemlGXIRyUhBfe/HgdvTPRkXEZHMpi4rIpJxgocEW4l0E5lKSYiIiEjSqWRFRERERCREKlkREREREQmREnIRERERkRBlXQ15VVWVL1q0KOwwRERERCSDPfnkk/vcvTqefbMuIV+0aBEbNmwIOwwRERERyWBmtiPefVWyIiIiIiISIiXkIiIiIiIhUkIuIiIiIhKihCXkZnaTmbWZ2Qtjxj9sZpvNbKOZfT1m/LNm1mhmW8zs/JjxC4KxRjP7TMx4vZmtC8Z/bmYFiboXEREREZFESeQM+c2MWSHPzM4GLgFOdvcTgG8E4yuAy4ETgmO+Z2a5ZpYL/CdwIbACuCLYF+BrwLfcfQmwH7gmgfciIiIiIpIQCUvI3f0PQOeY4f8FfNXdB4J92oLxS4Db3X3A3ZuARmB18Gp0923uPgjcDlxiZgacA9wZHH8LcGmi7kVEREREJFGSXUO+DHhDUGryezM7PRivA3bF7Lc7GJtofDZwwN2Hx4yLiIiIiKSVZPchzwMqgTOB04E7zGxxoi9qZtcC1wIsXLgw0ZcTEREREYlbsmfIdwN3ecR6YBSoApqBBTH7zQ/GJhrvACrMLG/M+Ljc/UZ3X+Xuq6qr41owSUREREQkKZKdkP8aOBvAzJYBBcA+4B7gcjMrNLN6YCmwHngCWBp0VCkg8uDnPe7uwCPAO4PzXgXcndQ7ERERERGZBgkrWTGznwF/BVSZ2W7geuAm4KagFeIgcFWQXG80szuATcAwcJ27jwTn+UfgASAXuMndNwaX+DRwu5l9GXga+HGi7kVEREREJFEskg9nj1WrVvmGDRvCDkNEREQkdC0H+2jrGmBpbSkzCpL9aGFmM7Mn3X1VPPvqX15EREQkC42MOpffuJYdHb2YwYJZM1hWW8qy2jKWzynjlAWzWDh7RthhZgUl5CIiIiJZ6OHNbezo6OW6s4+lMC+XF1u7ebG1m0e3tDM86uQYXHpKHf/7zctYUKnEPJGUkIuIiIhkoZsfa2LuzCI+9uZl5Oe+0udjcHiUpn09/PKp3dzy2HZ+8+we3r16Ideds4SasqIQI85cye6yIiIiIiIh29razZ8bO3jvmce8KhkHKMjLYfmcMj530fH8/pNn887TFnDbup286euP8vX7N3OwbyikqDOXEnIRERGRLHPzY9spyMvhitWHXzBxzswi/u2yE3no42/iLStq+d6jL/Hmb/5eSfk0U0IuIiIikkUO9g5x11PNXPqaeVSWFMR1zKKqEm644hT+892n0t49wMbmgwmOMrsoIRcRERHJInds2EXf0AhXvW7RlI9dtWgWAFvbDk1zVNlNCbmIiIhIlhgZdW55fDurF1VywryZUz6+pqyQssI8GpWQTysl5CIiIiJZ4qGGVnbv7+P9Zy06ouPNjCW1pUrIp5kSchEREZEsccvj25k7s4jzVtQe8TmWVJeqZGWaKSEXERERyQIvBq0O3/faY8jLPfIUcGltKfsODXCgd3Aao8tuSshFREREssDNj22nMC+Hy08/fKvDySypKQVQ2co0UkIuIiIikuEirQ53c+lr6uJudTiRpTVlgBLy6aSEXERERCTD/XzDTvqHRo+o1eFYdRXFFOXnqI58GikhFxEREclgPQPD3PLYDs6or2TFvPKjPl9OjnFstTqtTCcl5CIiIiIZanTU+fgdz9BysI+PvXnZtJ13SY0S8umkhFxEREQkQ337wRd5YGMr//zWFbz22NnTdt4l1aU0H+ijZ2B42s6ZzZSQi4iIiGSg3z63hxsebuRdp83nA0e4ENBEltZGOq281K5Z8umghFxEREQkw7zQfJBP/OJZTjtmFl9++0rMbFrPr9aH00sJuYiIiEgGae8e4NpbN1A5o4AfvPc0CvNyp/0ax8wuIS/HlJBPk7ywAxARERGR6TEwPMKHbnuSzt5B7vzQ66guK0zIdfJzc1hUVaLWh9NEM+QiIiIiGcDd+T+/eoEnd+zn39/1GlbWzUzo9ZbWlPKSEvJpoYRcREREJAM89lIHv3hyNx8+ZwlvPWluwq+3pKaU7R09DAyPJPxamU4JuYiIiEgGuPPJ3ZQX5XHd2UuScr0lNaWMOmzf15uU62UyJeQiIiIiae7QwDD3v7CXi0+eR1H+9D/EOZ5op5Wtbd1JuV4mU0IuIiIikubufb6FvqER3nFqXdKueWx1KWZqfTgdlJCLiIiIpLm7ntpNfVUJpy6clbRrFuXnsmDWDHVamQZKyEVERETS2K7OXtZu6+SyU+qmfQGgyajTyvRQQi4iIiKSxn79dDMAl56SvHKVqCU1pWzb18PwyGjSr51JEpaQm9lNZtZmZi+Ms+2fzMzNrCr4bmZ2g5k1mtlzZnZqzL5XmdnW4HVVzPhpZvZ8cMwNluxfCUVERERC5u7c9XQzZy6uZEHljKRff0lNKYPDo+za35f0a2eSRM6Q3wxcMHbQzBYA5wE7Y4YvBJYGr2uB7wf7VgLXA2cAq4HrzSxaHPV94IMxx/3FtUREREQy2VM799O0r4fLTp0fyvWjnVb0YOfRSVhC7u5/ADrH2fQt4FOAx4xdAtzqEWuBCjObC5wPrHH3TnffD6wBLgi2lbv7Wnd34Fbg0kTdi4iIiEgq+uVTzRTn53LRiYlfCGg8x6r14bRIag25mV0CNLv7s2M21QG7Yr7vDsYON757nPGJrnutmW0wsw3t7e1HcQciIiIiqaF/aITfPruHC1bOobQwL5QYyovymVNepBnyo5S0hNzMZgCfAz6frGtGufuN7r7K3VdVV1cn+/IiIiIi0+7Bhla6+oe5LIm9x8ezpKZUCflRSuYM+bFAPfCsmW0H5gNPmdkcoBlYELPv/GDscOPzxxkXERERyQp3PdXMnPIiXndsVahxRBPySBWxHImkJeTu/ry717j7IndfRKTM5FR33wvcA1wZdFs5Ezjo7i3AA8B5ZjYreJjzPOCBYFuXmZ0ZdFe5Erg7WfciIiIiEqb27gF+/2I7bz+1jtyccBvNLakppXdwhD0H+0ONI50lsu3hz4DHgeVmttvMrjnM7vcC24BG4IfAPwC4eyfwJeCJ4PXFYIxgnx8Fx7wE3JeI+xARERFJNXc/08zIqPOOkMtVILI4EKjTytFI2BMA7n7FJNsXxXx24LoJ9rsJuGmc8Q3AyqOLUkRERCT9/PKpZk6eP5MlNWVhh/Jy68Otrd28aZme1TsSWqlTREREJI1s2tNFQ0sX7zgtnN7jY80uLaSypICX2jVDfqSUkIuIiIikkQc27iXH4OKT5oUdysuWVKvTytFQQi4iIiKSRtY3dbJiXjmVJQVhh/KyJbWlbFWnlSOmhFxEREQkTQwMj/DUzv2sXjQ77FBeZUl1KQd6h+joGQw7lLSkhFxEREQkTTy/+yADw6Ocsbgy7FBeZWlt9MFOla0cCSXkIiIiImliXVOk+/Ppi1IrIa+vKgFge0dPyJGkJyXkIiIiImli7bYOlteWpVT9OMCc8iJyDFoO9IUdSlpSQi4iIiKSBoZHRnlyx/6UK1cByMvNYU55EbuVkB8RJeQiIiIiaeCFPV30Do6wuj71EnKAeRXF7FFCfkSUkIuIiIikgXXbOgBSNiGvm1XMngP9YYeRlpSQi4iIiKSB9U2dLK4qoaasKOxQxjWvopiWg32MjqoX+VQpIRcRERFJcSOjzvrtnSlZPx41r6KYoRGn/dBA2KGkHSXkIiIiIimuoaWL7v5hzqhPrQWBYs2vKAagWXXkU6aEXERERCTFrQ/6j6dq/ThEZsgBPdh5BJSQi4iIiKS4dU0dLKgsfjnpTUXzKiK17c37lZBPlRJyERERkRTm7qxv6mT1otQtVwEoK8qnrChPM+RHQAm5iIiISArb2naI/b1DKf1AZ1RdRTHNan04ZUrIRURERFJYtP/4mSn8QGdUJCHXDPlUKSEXERERSWHrmjqZU17EgsrUrR+P0mqdR0YJuYiIiEiKcnfWNUX6j5tZ2OFMqm5WMQf7hjg0MBx2KGlFCbmIiIhIimra10N790BKtzuMpdaHR0YJuYiIiEiKivYfT+UFgWLVRVsfKiGfEiXkIiIiIilqXVMnVaUFHFtdEnYocamrmAFohnyqlJCLiIiIpKj1TZ2srk+P+nGA6rJC8nJMiwNNkRJyERERkRS0q7OX5gN9aVOuApCbY8yZWaQZ8ilSQi4iIiKSgtYF9ePp8kBnVF1FMXu0ONCUKCEXERERSUFPNHUyszif5bVlYYcyJVocaOqUkIuIiIikoBf2HOSk+TPJyUmP+vGoeRXF7O3qZ3hkNOxQ0oYSchEREZEUMzg8ytbWQ6yYVx52KFNWN6uYkVGnrXsg7FDSRsIScjO7yczazOyFmLH/Z2abzew5M/uVmVXEbPusmTWa2RYzOz9m/IJgrNHMPhMzXm9m64Lxn5tZQaLuRURERCSZXmo/xODIKCvmpl9CHl0cSGUr8UvkDPnNwAVjxtYAK939JOBF4LMAZrYCuBw4ITjme2aWa2a5wH8CFwIrgCuCfQG+BnzL3ZcA+4FrEngvIiIiIkmzaU8XACek4wx5sDiQOq3EL2EJubv/AegcM/Y/7j4cfF0LzA8+XwLc7u4D7t4ENAKrg1eju29z90HgduASizTjPAe4Mzj+FuDSRN2LiIiISDJtaumiKD+H+qrSsEOZMs2QT12YNeQfAO4LPtcBu2K27Q7GJhqfDRyISe6j4+Mys2vNbIOZbWhvb5+m8EVEREQSY9OeLpbPKSc3zR7oBJhRkMesGflaHGgKQknIzeyfgWHgp8m4nrvf6O6r3H1VdXV1Mi4pIiIickTcnU0tXWlZPx41r6JYJStTkJfsC5rZ+4GLgXPd3YPhZmBBzG7zgzEmGO8AKswsL5glj91fREREJG3tOdjPwb6htOywElVXUcyOjt6ww0gbSZ0hN7MLgE8Bb3P32P9K9wCXm1mhmdUDS4H1wBPA0qCjSgGRBz/vCRL5R4B3BsdfBdydrPsQERERSZToA53pPkPefKCPV+Ze5XAS2fbwZ8DjwHIz221m1wDfBcqANWb2jJn9AMDdNwJ3AJuA+4Hr3H0kmP3+R+ABoAG4I9gX4NPAx82skUhN+Y8TdS8iIiIiybJpTxdmcNyc9FqhM1ZdRTGHBobp6h+efGdJXMmKu18xzvCESbO7fwX4yjjj9wL3jjO+jUgXFhEREZGMsanlIPWzSygpTHpl8bSpmxXptLLnQB8zi/NDjib1aaVOERERkRSyqaWL49O4fhxiWh+q00pclJCLiIiIpIiDfUPs6uxL6/pxgHnRxYEOKiGPhxJyERERkRSxuSV4oDPNZ8irSgopyM3R4kBxUkIuIiIikiI2BQn5CWmekOfkGPMqilSyEicl5CIiIiIpYtOeLqpKC6kpKwo7lKOmxYHip4RcREREJEVsaulK+3KVqEhC3h92GGlBCbmIiIhIChgcHmVr66G0f6Azqq6imNbufgaHR8MOJeUpIRcRERFJAS+1H2JwZDRjZsjrKopxh9YuzZJPRgm5iIiISArYtCfosJIhM+Qv9yJXHfmklJCLiIiIpIBNLV0U5edQX1USdijTIna1Tjk8JeQiIiIiKWDTni6Om1NObo6FHcq0mDsz0ilGrQ8np4RcREREJGTunlEdVgCK8nOpKi3Qap1xUEIuIiIiErLmA30c7BvKmPrxqLqKYprV+nBSSshFREREQvbyA50ZNEMOkQc7m/f3hh1GylNCLiIiIhKyTS1dmMFxc8rCDmVaRRcHcvewQ0lpSshFREREQrZpTxf1VSXMKMgLO5RpVVdRTN/QCAd6h8IOJaUpIRcREREJ2aaWLk6YNzPsMKadepHHRwm5iIiISIgO9g2xe39fxj3QCZEZclBCPhkl5CIiIiIhamjJzAc6QYsDxUsJuYiIiEiIXu6wkoEz5LNm5FOcn8uuTiXkh6OEXERERCREm1q6qC4rpLqsMOxQpp2ZcWxNCVvbusMOJaUpIRcREREJUUNLF8dn4Ox41LLaMl5sVUJ+OErIRUREREIyOupsa+9haU1p2KEkzPLaMlq7BjjQOxh2KClLCbmIiIhISFq7++kbGqG+qiTsUBJmWbDY0Yuth0KOJHUpIRcREREJSdO+HoCMTsiX10YS8i0qW5nQYRNyM8sxs79JVjAiIiIi2SQbEvK5M4soK8zjxb1KyCdy2ITc3UeBTyUpFhEREZGssn1fD4V5OcwpLwo7lIQxM5bNKdMM+WHEU7LyoJl9wswWmFll9JXwyEREREQyXNO+XuqrSsjJsbBDSahopxV3DzuUlJQXxz5/G7xfFzPmwOLpD0dEREQkezTtO8TSmrKww0i45bWl/Gz9EO3dA9Rk8F8DjtSkM+TuXj/Oa9Jk3MxuMrM2M3shZqzSzNaY2dbgfVYwbmZ2g5k1mtlzZnZqzDFXBftvNbOrYsZPM7Png2NuMLPM/tVSREREMsrIqLOzs5dFGVw/HqVOK4c3aUJuZjPM7P+Y2Y3B96VmdnEc574ZuGDM2GeAh9x9KfBQ8B3gQmBp8LoW+H5wrUrgeuAMYDVwfTSJD/b5YMxxY68lIiIikrKa9/cxNOIszoKEXJ1WDi+eGvL/AgaB1wXfm4EvT3aQu/8B6BwzfAlwS/D5FuDSmPFbPWItUGFmc4HzgTXu3unu+4E1wAXBtnJ3X+uRYqRbY84lIiIikvKaOiIdVrJhhnx2aSFVpQXqtDKBeBLyY93968AQgLv3AkdaHlLr7i3B571AbfC5DtgVs9/uYOxw47vHGR+XmV1rZhvMbEN7e/sRhi4iIiIyfZraI+UbmdzyMNayWnVamUg8CfmgmRUTeZATMzsWGDjaCwcz20l51Nbdb3T3Ve6+qrq6OhmXFBERETms7R29lBbmUVVaEHYoSbGstoytrd2MjqrTyljxJOTXA/cDC8zsp0Rqv4+0N3lrUG5C8N4WjDcDC2L2mx+MHW58/jjjIiIiImlh274e6qtKyJa+FMtqy+gZHKH5QF/YoaSceLqsrAEuA94P/AxY5e6PHuH17gGinVKuAu6OGb8y6LZyJnAwKG15ADjPzGYFD3OeBzwQbOsyszOD7ipXxpxLREREJOVt39eTFfXjUcvnlALwospW/kI8M+QAbwLOBc4G3hDPAWb2M+BxYLmZ7Taza4CvAm8xs63Am4PvAPcC24BG4IfAPwC4eyfwJeCJ4PXFYIxgnx8Fx7wE3BfnvYiIiIiEanB4lN37e6mfPSPsUJJmqTqtTGjShYHM7HvAEiKz4wB/b2ZvdvfrDnMY7n7FBJvOHWdf59ULD8Vuuwm4aZzxDcDKw8UgIiIikop2dvYy6lBfnT0z5OVF+cybWaROK+OIZ6XOc4Djg6QZM7sF2JjQqEREREQy2PZ9QcvD2dmTkENkgaAtWhzoL8RTstIILIz5viAYExEREZEj0BQk5NnS8jBqeW0ZL7UdYnhkNOxQUsqEM+Rm9hsibQnLgAYzWx98PwNYn5zwRERERDJPU0cPs2bkUzEjO1oeRi2rLWNwZJTtHb0sqSkNO5yUcbiSlW8kLQoRERGRLNLU3pN1s+MAy+dEHux8sbVbCXmMCRNyd/997HczKz/c/iIiIiISn+0dPbz22Nlhh5F0S2pKMYMte7u56MS5YYeTMuLpsnIt8EWgHxgFjEjpyuLEhiYiIiKSefoGR2g52E99lj3QCVCUn8ui2SXqRT5GPDPenwRWuvu+RAcjIiIikum2dwQPdGZRy8NYy2pL1Yt8jHi6rLwE9CY6EBEREZFs0JSlLQ+jltWWsX1fD/1DI2GHkjLimSH/LPCYma0DBqKD7v6RhEUlIiIikqGyteVh1LLaMkYdtrX3sGJeedjhpIR4EvL/D3gYeJ5IDbmIiIiIHKGmfT3UlBVSUpidvTJiO60oIY+I5ych390/nvBIRERERLLA9n3Z2fIwatHsEvJzTXXkMeKpIb/PzK41s7lmVhl9JTwyERERkQy0vSO7E/KCvBwWV5Xy4l4l5FHxzJBfEbx/NmZMbQ9FREREpqirf4h9hwZZlMUJOcCyOWU8vXN/2GGkjEkTcnevT0YgIiIiIplue5Y/0Bm1vLaU3zy7h0MDw5RmaS19rHgWBrpyvHF3v3X6wxERERHJXNneYSVqWW3kwc6trd2csnBWyNGEL55fSU6P+VwEnAs8BSghFxEREZmCpn09mMHCyhlhhxKq2E4rSsjjK1n5cOx3M6sAbk9YRCIiIiIZqmlfD/NmFlOUnxt2KKFaMGsGRfk5bNl7KOxQUkI8XVbG6gFUVy4iIiIyRdv39bC4OrvLVQBycoxltWU0tHSFHUpKiKeG/DdEuqpAJIFfAdyRyKBEREREMo27s21fD5e+pi7sUFLCGfWV3PzYdrr7hygryg87nFDFU0P+jZjPw8AOd9+doHhEREREMlJnzyDd/cNZ3/Iw6s3H1/LDPzbxhxf38daT5oYdTqjiqSH/fTICEREREclk0Q4ri5WQA3DaMbOYNSOfBxtasz4hn7SG3MwuM7P5jHeYAAAgAElEQVStZnbQzLrMrNvMVPAjIiIiMgXRhFwz5BF5uTmcfVwND29uY2hkNOxwQhXPQ51fB97m7jPdvdzdy9y9PNGBiYiIiGSS7R095OUY82cVhx1KyjhvRS0H+4Z4Yntn2KGEKp6EvNXdGxIeiYiIiEgGa9rXw4LKGeTnHkmTu8z0hqXVFOTl8OCmtrBDCVU8PxEbzOznZnZFUL5ymZldlvDIRERERDJI077erF+hc6ySwjzOOnY2axr24u6TH5Ch4knIy4Fe4Dzgr4PXxYkMSkRERCSTuDvb9/WwaLYS8rHesmIOuzr72NLaHXYooYmny8rVyQhEREREJFM1H+ijb2hEiwKN483H1/C5X8GDm1o5bk52PqaoIiYRERGRBGtoicz+Hj+3LORIUk9NeREnL6hgzabWsEMJTSgJuZn9bzPbaGYvmNnPzKzIzOrNbJ2ZNQY16wXBvoXB98Zg+6KY83w2GN9iZueHcS8iIiIik4kuEb88S2eAJ3Peilqe3X2Q1q7+sEMJRdITcjOrAz4CrHL3lUAucDnwNeBb7r4E2A9cExxyDbA/GP9WsB9mtiI47gTgAuB7ZpabzHsRERERicfmvV0cM3sGpYXxLJKefd6yohaABxuyc5Y8noWBCs3s3Wb2OTP7fPR1lNfNA4rNLA+YAbQA5wB3BttvAS4NPl8SfCfYfq6ZWTB+u7sPuHsT0AisPsq4RERERKZdQ0s3x2t2fEJLa0pZWDkja8tW4pkhv5tI8jsM9MS8joi7NwPfAHYSScQPAk8CB9x9ONhtN1AXfK4DdgXHDgf7z44dH+cYERERkZTQOzjM9o4ejp+rhHwiZsZbVtTyWGMHPQPDkx+QYeL5u8l8d79gui5oZrOIJPj1wAHgF0RKThLGzK4FrgVYuHBhIi8lIiIi8iqb93bjrgc6J/OWFbX8+E9N/OHFdi48cW7Y4SRVPDPkj5nZidN4zTcDTe7e7u5DwF3AWUBFUMICMB9oDj43AwsAgu0zgY7Y8XGOeRV3v9HdV7n7qurq6mm8FREREZHDiz7QqRnyw1t1zCwqZuRnZdlKPAn564Eng04mz5nZ82b23FFccydwppnNCGrBzwU2AY8A7wz2uYpIqQzAPcF3gu0Pe2Qpp3uAy4Ma93pgKbD+KOISERERmXYNLV2UFeYxf1Zx2KGktLzcHM5ZXsPDW9oYHhkNO5ykiqdk5cLpvKC7rzOzO4GniNSlPw3cCPwOuN3MvhyM/Tg45MfAT8ysEegk0lkFd99oZncQSeaHgevcfWQ6YxURERE5Wg0t3Rw3t4zIPKQczltW1HLX081s2LGfMxfPDjucpIlnpc4dZnYy8IZg6I/u/uzRXNTdrweuHzO8jXG6pLh7P/CuCc7zFeArRxOLiIiISKKMjjpb9nZz2anqOxGPNyyrpiA3hzWbWrMqIY+n7eFHgZ8CNcHrNjP7cKIDExEREUl3u/f3cWhgWPXjcSotzON1S2azZlMrkQrl7BBPDfk1wBnu/nl3/zxwJvDBxIYlIiIikv426YHOKTtvxRx2dvayeW932KEkTTwJuQGxtdkjwZiIiIiIHEZDSxdmsLxWLQ/jdd4JteQY3Pd8S9ihJE08Cfl/AevM7Atm9gVgLa88cCkiIiIiE2ho6aJ+dgnFBblhh5I2qkoLWV1fyb0v7A07lKSZNCF3928CVxPpcNIJXO3u3050YCIiIiLprmFvl8pVjsBFJ86lse0QW1uzo2xlwoTczMqD90pgO3Bb8NoRjImIiIjIBLr7h9jV2acVOo/A+SfMwQzuy5JZ8sPNkP938P4ksCHmFf0uIiIiIhOIPpSoGfKpqy0v4rSFs7g3S+rIJ0zI3f3i4L3e3RfHvOrdfXHyQhQRERFJP5vVYeWoXHjiXDbv7aZpX0/YoSRcPH3IH4pnTEREREResamlm5nF+cydWRR2KGnpgpVzALjvhcyfJT9cDXlRUCteZWazzKwyeC0CtNyUiIiIyGE0tHRx/NwyzNQt+kjUVRRz8oIK7s+COvLDzZD/PZF68eOC9+jrbuC7iQ9NREREJD2NjDpb9nZz3ByVqxyNi1bO4bndB9nV2Rt2KAl1uBry77h7PfCJmNrxenc/2d2VkIuIiIhMYEdHD31DI6xQ/fhRuXDlXICMnyXPm2wHd/8PM1sJrACKYsZvTWRgIiIiIumqoUUdVqbDwtkzOGFeOfe90MIH35i5PUXieajzeuA/gtfZwNeBtyU4LhEREZG01dDSRW6OsbS2NOxQ0t5FJ87lqZ0HaDnYF3YoCTNpQg68EzgX2OvuVwMnAzMTGpWIiIhIGtu8t4vFVSUU5eeGHUrauzDotvJABpetxJOQ97n7KDAcrN7ZBixIbFgiIiIi6auhpVvlKtNkcXUpy2vLuDfLE/INZlYB/JBIl5WngMcTGpWIiIhImjrYO0TzgT4l5NPowhPn8MT2Ttq6+8MOJSEmTcjd/R/c/YC7/wB4C3BVULoiIiIiImM07I2s0Hnc3LKQI8kcF66cizv8z8bWsENJiHge6ny7mc0EcPftwE4zuzTRgYmIiIiko4aWSEKulofTZ1ltKYurSzJ21c54Slaud/eD0S/ufgC4PnEhiYiIiKSvhpYuKksKqCkrDDuUjGFmXLRyLmu3ddLZMxh2ONMunoR8vH0m7V8uIiIiko0iD3SWYWZhh5JRzlhcycios7W1O+xQpl28D3V+08yODV7fJPJwp4iIiIjEGB4ZZUtrN8fPUbnKdJtTHlmfsrV7IORIpl88CfmHgUHg58FrALgukUGJiIiIpKPtHT0MDo+qw0oC1AQJeVtX5nVambT0xN17gM8kIRYRERGRtPb0zgMArKzTGorTrbwoj6L8HFqzKSE3s2+7+8fM7DeAj93u7m9LaGQiIiIiaWbttk5mzchnaU1p2KFkHDOjtryI1q7MK1k53Az5T4L3byQjEBEREZF0t66pgzPqZ5OTowc6E6G2rCi7Zsjd/cng/ffJC0dEREQkPe3e38vu/X1c8/r6sEPJWDXlhWzc0xV2GNPucCUrzzNOqQpggLv7SQmLSkRERCTNrNvWCcCZi2eHHEnmqi0v4uHNbbh7RrWVPFzJysVJi0JEREQkza3d1kHFjHyW15aFHUrGqi0vpHdwhEMDw5QV5YcdzrSZsO2hu++Ivoi0OjwZOAkYCMaOmJlVmNmdZrbZzBrM7LVmVmlma8xsa/A+K9jXzOwGM2s0s+fM7NSY81wV7L/VzK46mphEREREjsa6pk5WL6pU/XgC1ZQFvcgz7MHOSfuQm9nfAeuBy4B3AmvN7ANHed3vAPe7+3FEEv0GIq0VH3L3pcBDvNJq8UJgafC6Fvh+EFclcD1wBrAauD6axIuIiIgk054Dfezs7OUMlaskVE15IQBt3Zn1YOekfciBTwKnuHsHgJnNBh4DbjqSC5rZTOCNwPsB3H0QGDSzS4C/Cna7BXgU+DRwCXCruzuRXwYqzGxusO8ad+8MzrsGuAD42ZHEJSIiInKk1jV1AHDm4sqQI8lstS8vDpRlM+RAB9Ad8707GDtS9UA78F9m9rSZ/cjMSoBad28J9tkL1Aaf64BdMcfvDsYmGhcRERFJqrUvdTKzOJ/j52iFzkSKJuSZ1vrwcF1WPh58bATWmdndRLquXAI8d5TXPBX4sLuvM7PvMGYlUHd3Mxuvw8sRMbNriZS7sHDhwuk6rYiIiAgAa5s6OF314wlXWphHSUFuVtWQlwWvl4Bf80oLxLuBpqO45m5gt7uvC77fSSRBbw1KUQje24LtzcCCmOPnB2MTjf8Fd7/R3Ve5+6rq6uqjCF1ERETk1VoO9rGjo1flKklSW15Ea7bUkLv7vybigu6+18x2mdlyd98CnAtsCl5XAV8N3u8ODrkH+Eczu53IA5wH3b3FzB4A/m/Mg5znAZ9NRMwiIiIiE1H/8eSqKS+kLVtKVqLM7BHGWSDI3c85iut+GPipmRUA24CriczW32Fm1wA7gL8J9r0XuIhI6UxvsC/u3mlmXwKeCPb7YvQBTxEREZFkWdfUQVlRHsfPVf14MtSWF/H0zgNhhzGt4umy8omYz0XAO4Dho7mouz8DrBpn07nj7OvAdROc5yaOsNuLiIiIyHRYuy3SfzxX9eNJUVteRGtXf0at1jlpQu7uT44Z+rOZrU9QPCIiIiJpo7Wrn6Z9Pbx7tZpGJEtNWSEDw6N09Q0zc0ZmrNYZT8lK7BMKOcBpwMyERSQiIiKSJtZui/YfV/14srzc+rC7P3sScuBJIjXkRqRUpQm4JpFBiYiIiKSDtds6KSvMY8U81Y8nS2wv8mW1ZSFHMz3iKVmpT0YgIiIiIulmXVMHp9erfjyZassLATKqF3k8JStFwD8ArycyU/5H4Afunln9ZkRERESmoK2rn23tPfztqgWT7yzTpqYsMkPelkG9yOMpWbkV6Ab+I/j+buAnwLsSFZSIiIhIqlvXpP7jYSguyKWsKI+2bJohB1a6+4qY74+Y2aZEBSQiIiKSDtZu66C0MI8TVD+edNHWh5kiJ459njKzM6NfzOwMYEPiQhIRERFJfeuaOlm1aBZ5ufGkUzKdassLsy4hPw14zMy2m9l24HHgdDN73syeS2h0IiIiIimovXuAxrZDKlcJSW1ZUXY91AlckPAoRERERNLI+qB+/Iz6ykn2lESoKS+irTtzVuuMp+3hjmQEIiIiIpIu7nm2mVkz8llZp7USw1BbXsjQiLO/d4jKkoKwwzlqKnoSERERmYJdnb2s2dTKFasXkq/68VDELg6UCfRTJCIiIjIFP1m7AzPjvWceE3YoWeuVxYGUkIuIiIhkld7BYW5fv5MLTpjDvIrisMPJWi8vDpQhD3YqIRcRERGJ06+ebqarf5j3n7Uo7FCyWo1myEVERESyj7tz85+3s7KunFXHzAo7nKxWmJfLrBn5tHYrIRcRERHJGo+91MHWtkO8/3X1GdFqL91FVutUyYqIiIhI1vivPzcxu6SAi0+aG3YoAlSXFdLWrYRcREREJCvs6Ojhoc1tvOeMhRTl54YdjhCZIW9TDbmIiIhIdrj18R3kmvEetTpMGbXlkRny0VEPO5SjpoRcRERE5DB6Boa544ldXHTi3JcXpJHw1ZYXMTLqdPQMhh3KUVNCLiIiInIYv3xqN90DanWYaqK9yDOh9aESchEREZEJjI46Nz+2nZMXVHDqQrU6TCXR1TrbMqD1oRJyERERkQn8sXEf29p7uPp1i8IORcaIlg9lQutDJeQiIiIi43B3vv9oI9VlhVx0olodpprqssxZrVMJuYiIiMg4HtjYytptnXzknCUU5CllSjX5uTlUlRZohlxEREQkE/UPjfCVezexvLaMK1YvDDscmUBNWWb0IldCLiIiIjLGTX9uYldnH5//6xXk5SpdSlW15YW06qFOERERkczS2tXPdx9u5LwVtZy1pCrscOQwasuLVLJyNMws18yeNrPfBt/rzWydmTWa2c/NrCAYLwy+NwbbF8Wc47PB+BYzOz+cOxEREZFM8vX7tzA84vzzW48POxSZRE15EfsODTA8Mhp2KEclzBnyjwINMd+/BnzL3ZcA+4FrgvFrgP3B+LeC/TCzFcDlwAnABcD3zCw3SbGLiIhIBnp21wF++dRuPvD6eo6ZXRJ2ODKJmrJC3En71TpDScjNbD7wVuBHwXcDzgHuDHa5Bbg0+HxJ8J1g+7nB/pcAt7v7gLs3AY3A6uTcgYiIiGQad+cLv9lIdVkh/3jOkrDDkTi80os8vevIw5oh/zbwKSD694XZwAF3Hw6+7wbqgs91wC6AYPvBYP+Xx8c55lXM7Foz22BmG9rb26fzPkRERCRD3P3MHp7eeYBPnr+c0sK8sMOROERX60z3OvKkJ+RmdjHQ5u5PJuua7n6ju69y91XV1dXJuqyIiIikid7BYb5632ZOrJvJO0+dH3Y4EqdMmSEP49e/s4C3mdlFQBFQDnwHqDCzvGAWfD7QHOzfDCwAdptZHjAT6IgZj4o9RkRERCRuP3j0JfZ29fPdd59CTo6FHY7EaXZJATlG2vciT/oMubt/1t3nu/siIg9lPuzu7wEeAd4Z7HYVcHfw+Z7gO8H2h93dg/HLgy4s9cBSYH2SbkNEREQyxK+e3s13H2nkktfMY9WiyrDDkSnIy82hqrQw7UtWUqlA6tPA7Wb2ZeBp4MfB+I+Bn5hZI9BJJInH3Tea2R3AJmAYuM7dR5IftoiIiKSrX2zYxad++Rxn1s/m3y47Mexw5AjUlhel/eJAoSbk7v4o8GjweRvjdElx937gXRMc/xXgK4mLUERERDLVf6/byed+9TxvWFrFje9bRXGBuieno9ryQpoPpHdCrpU6RUREJOvc+vh2Pver5zl7eTU/vFLJeDqrKS9SDbmIiIhIOvnRH7fx+bs38pYVtfzgfadRlK9kPJ3VlhXR0TPI4HD6rtaphFxERESyxvcffYkv/66Bi06cw/fecyqFeUrG0120F3n7ofR9sFMJuYiIiGSFF5oP8rX7N3PxSXO54fJTyM9VGpQJMqEXuX4SRUREJCvctnYHxfm5fOXtJ5KnZDxj1AQz5G1p3PpQP40iIiKS8br6h7j7mT287eR5zCzODzscmUY1ZZohFxEREUl5dz25m76hEd575jFhhyLTbHZJAbk5Rlsa9yJXQi4iIiIZzd25bd1OTp4/kxPnzww7HJlmOTlGTVl6r9aphFxEREQy2vqmThrbDvGeMzQ7nqlqyotUsiIiIiKSqm5bt5Pyojz++uR5YYciCVJbVqiHOkVERERSUXv3APe/0MI7Tpuv1TgzWG15Ea2qIRcRERFJPXds2MXQiKtcJcPVlhdyoHeI/qGRsEM5IkrIRUREJCONjDr/vW4nr108myU1pWGHIwkUbX3Y3p2eZStKyEVERCQj/eHFdpoP9PGeMxeGHYok2MuLA6Vp2YoSchEREclIt63dQVVpIeetmBN2KJJgteXRxYE0Qy4iIiKSEnbv7+XhLW1cfvoCCvKU7mS6VxJyzZCLiIiIpISfrd+JAVecoXKVbDBrRj75uaYZchEREZFUMDg8ys+f2MU5x9VQV1EcdjiSBGZGTVkRbZohFxEREQnfnU/uZt+hQbU6zDI15YW0qcuKiIiISLjauvr56n0NnFFfyZuWVYcdjiRRbVmRashFREREwvaF32ykf3iUf7vsRHJyLOxwJIlqywuVkIuIiIiE6YGNe7n3+b189NylLK7WQkDZpqa8iK7+YfoG02+1TiXkIiIikva6+of4/N0vcNycMq594+Kww5EQRFsfpuPiQErIRUREJO197b7NtHcP8LV3nER+rtKbbFQbrNaZjq0P9RMrIiIiaW19Uyc/XbeTD5xVz8kLKsIOR0JSU5a+iwMpIRcREZG01T80wmfueo75s4r5+HnLwg5HQhSdIU/H1od5YQcgIiIicqT+85FGtrX3cOsHVjOjQGlNNptZnE9BXk5aLg6kGXIRERFJS5v3dvH9R1/islPreKN6jmc9M0vb1odKyEVERCQt/du9mykryuNf3roi7FAkRUQWB0q/kpWkJ+RmtsDMHjGzTWa20cw+GoxXmtkaM9savM8Kxs3MbjCzRjN7zsxOjTnXVcH+W83sqmTfi4iIiITj2V0H+P2L7XzwjYuZVVIQdjiSImrLi2hV28O4DAP/5O4rgDOB68xsBfAZ4CF3Xwo8FHwHuBBYGryuBb4PkQQeuB44A1gNXB9N4kVERCSz/cfDW5lZnM+Vr10UdiiSQmrKC2nTDPnk3L3F3Z8KPncDDUAdcAlwS7DbLcClwedLgFs9Yi1QYWZzgfOBNe7e6e77gTXABUm8FREREQnBC80HebChjWteX09poR7klFfUlBVxaGCYnoHhsEOZklBryM1sEXAKsA6odfeWYNNeoDb4XAfsijlsdzA20fh417nWzDaY2Yb29vZpi19ERESS77sPN1JWmMdVr1sUdiiSYtK19WFoCbmZlQK/BD7m7l2x29zdAZ+ua7n7je6+yt1XVVfrKWwREZF0tWVvN/dv3MvVZy1iZnF+2OFIiqktT8/FgUJJyM0sn0gy/lN3vysYbg1KUQje24LxZmBBzOHzg7GJxkVERCRDffeRRkoKcvnA6+vDDkVSUHSGXAn5JMzMgB8DDe7+zZhN9wDRTilXAXfHjF8ZdFs5EzgYlLY8AJxnZrOChznPC8ZEREQkAzW2HeK3z+3hfa9dRMUMdVaRv1QTzJCn24OdYTwJcRbwPuB5M3smGPsc8FXgDjO7BtgB/E2w7V7gIqAR6AWuBnD3TjP7EvBEsN8X3b0zObcgIiIiyfa9Rxopysvl796g2XEZX1lhHsX5uWk3Q570hNzd/wTYBJvPHWd/B66b4Fw3ATdNX3QiIiKSirbv6+HuZ/dw9esWUVVaGHY4kqLMLNL6UA91ioiIiEyv7z3aSF6Oce0bF4cdiqS4yGqd6TVDroRcREREUtquzl7ueqqZK1YvfLlGWGQimiEXERERmSYDwyM81NDKJ37xLDlm/P2bNDsuk6stj8yQR6qe04OWtxIREZGU0Tc4wu9fbOPe5/fy8OY2Dg0MU1aUx6cvPI65M4vDDk/SQG15Ib2DI8HPTnr0qldCLiIiIqHbsreb7z3ayP9sbKVvaIRZM/K5+KS5XLByDq87toqCPP1RX+LzyuJAA0rIRURERCaztbWbbz+0lXufb6GkII93nFbHRSvnsrq+krxcJeEydTVl0V7k/SypKQ05mvgoIRcREZGka2w7xA0PbeU3z+1hRn4u1/3VEv7uDfVa8EeOWk2wWmc6PdiphFxEREQSanhklOYDfWzb10NTew9P7tzPfc+3UJSfy4fedCwffMNiKkuUiMv0eKVkJX1aHyohFxERkWnl7jzY0MYdG3axrf0QOzt7GRp5peNFxYx8PviGxVz7xsXM1iI/Ms1KC/MoKciltUsz5CIiIpKFHmvcx9cf2MIzuw4wb2YRJ82v4LwT5lBfVcLiqhLqq0qoLCnAbKJFu0WOXm15Ea3dmiEXERGRLPL0zv1843+28OfGDubNLOJr7ziRd5w6Xw9mSihqygtpU8mKiIiIZIOtrd18/YEtrNnUyuySAj5/8QrefcZCivJzww5NslhteRFP7zwQdhhxU0IuIiIiU3ZoYJgbHtrKTX9qorggl0+ct4yrz6qnpFCphYSvpqyQtu7Iap3pUB6l/9WIiIhkidFRZ9u+Qzy76yAvtna/6kHLKDNYWVfO2ctrxm1B6O787vkWvvzbBvZ29fO3qxbw6QuPU5cUSSm15UX0D43S1T/MzOLUXxxICbmIiEiGauvu54mm/Ty3+wDP7j7AC81dHBoYBqAgL4fCceq7h0ZH6R8aJTfHWHXMLN6yopY3H1/LoqoSGtsOcf09L/Dnxg5OmFfO9957KqcunJXs2xKZVE35K4sDKSEXERGRpDk0MMz6pg7+tLWDPzfuY0trNwAFuTkcP7eMt59Sx0nzZ3LyggqOrS4lN+cv/5Q/Ouo833yQBxtaWbOplS//roEv/66BxVUl7NrfS3F+Ll+65ATefcYx4x4vkgpqyyLtNFu7BlhaWxZyNJNTQi4iIpIG3J2B4VH29w7S3j3w6tehATbt6eKZXQcYHnUK83I4fVEll55Sx2uPnc3xc8sozIvvIcucHOPkBRWcvKCCfzpvObs6e3mooZWHt7RzxuLZ/NN5y6hS73BJcem2OJASchERkRB09w+xdlsnbd39dB4apKNnkH2HBujsGaSzZ5DewRH6h4LX8CiDw6MTnmtmcT6Lqkq49o2Lef2SKk49Zta0dTlZUDmD959Vz/vPqp+W84kkQ015MEOeJr3IlZCLiIgkSd/gCA9vbuM3z+7h4S1tr0qyy4ryqCotZHZJAQsrZ1BSmEdhXg5F+bkU5uVQGLxX/P/t3XuUXWV5x/Hvc+5nzsxkhplkciEhoQQCIhiNAQURASnYWnR5WagVLKi13pe13laX17beqra2ZVkWQnFpRStqaQURXdK0KEgSNJBEAiQh5J6ZJDOZy7k//WPvM3MSMsNMMjM7J/P7rLXX3ufdt3efZ94zz37PPns3JZndnGZOa4bZLWk6m1Pj7v0WmSmaUgla0gn2NsjTOpWQi4iITIL+QpkdB4aOOm/b/kH+e91O7tuwh8Fihdktad68chFXnzuX0zpytOeSSqpFJtmc1uDWh41ACbmIiMhxeGb/ILc9sJXvPbyNgWJl1OXampJc84IFvPr8eVywpEM/iBSZYl2tGfaoh1xEROTktXbbAb75v1u457FdxMz44/PmcfnZXUdNtGdlk6xccgpJPUZeZNp0tWZ4eOv+qKsxLkrIRUREnkO+VGF3b55dvXm27R/g+6u3s+bpA7RkErzjktN520sXM29WNupqikidOa1p9vYVGuJpnUrIRUTkmOw4OERXS5rESdjru2FnH9/4n6fY3N3ProN5egaKh81feEqWT736HN64YqEeFS9ygupqyVCsVDk4WKL9BH+SrD5FRERkwu5dv5u/+PYaLjlzNje/dQWpxMmRlO87VOArP3uc761+htZMkuWL2nj+gjbmz8owd1aG+W1Z5s3KcFpHTteAi5zghu9FfiivhFxERE4uD27u4X3ffYQF7Vnuf3wfH7jjEf7pTcsbuqc8X6pw6wNbuOmXT5EvVbjxoiW877KlzGo68R+5LSJHV7sX+d6+AsvmRlyZ56CEXERExm3Dzj7ecftqFrZn+cG7Xsqda7fzNz/ZyEfvfJQvv/48Yg3Wa1ypOj99bDefv2cj2w8MccXZXXziVcs4fXZz1FUTkePU1dI4T+tUQi4iIuOyrWeQ62/7Dc2ZBN+68QLacyne/rLTGShU+NrPN9GcjvPpP3neCf/jqe7+Aqs27eP+x/ex6ol9HBwssWxuC995+wVcdEZn1NUTkUky3EN+6MS/9aESchGROuVKlXLVScZjuka4TrNndpIAAA6XSURBVHd/getufYhiucq/v+slLGgbuaPI+y8/g4FimZtXbSaXTvCRq5ZNaNvuTqnik3IdeqXqDBTLHMqXOZQvHTZ+am8/92/ax6M7enGHzuYUly2bw+XLurjq3LmKt8hJJpOMMyubVA/5dDCzq4B/BOLALe7+hYirJCIngGK5yp6+PDsODrF/oMiBwSIHB0scDMcHBkv05UsMFMoMFMr0h0O+NPIo80TMSCViwRCP0ZxOsLSrmbPntXL2vFbOmdfKqe3ZMXuE3Z2egSJbuwfY2jPI1u4BtvQMMFgok03FySTjNKXiZJPB0JJJhj8ezDB3VnbUu5iUKlX680GdWzNJWrOJKeuZPpQv8bbbfsPuvjzfefuFLO1qOWy+mfHxq5fRXyhz0/1PkUsneM8rzjhsmWK5ysGhInt6C2zu7mdr9yBbuvvZEr4nvUMlcqk4Hc1pOppTdORSdOTStOWSFMvVIE7FCgOFMoOFShCrcoVCqUqhXCEfjksVH/U4YgbLF7XzoSvO5NKz5vC8+a0Nd4mNiEzMtS9e+KzPrBORuY/+4XWiM7M4sAl4JbAdeBh4k7tvGG2dFStW+OrVq6ephiIzR+2zZKJJYbXqFCvV4cSqUK5SKFcpVapUqk7VfXhcrjjlqjNYrDBYLDNYS9CKQYK28+BQOOTZcyjP0T7essk4bU1J2ppStGQStKQT5NIJmjMJmtMJcqkEyYRRKjvFSoViuRoMlSq9QyV+v/sQW7oHhrfdkklwVlcLyXiMStUpVYN6lypOqVJlT2+eQ4Xy8P7jMePU9iwtmQT5UpWhYoV8qcJgscJQ6dlPeYwZzGnJ0NGcYqhUGe7xrT9xAEjFY3Q2p5jdkqazORjampLkwuOrHWcuHZwExGNGzIx4zEiE046TL1XJlyoMFSsMlirkixXuXLud1U8f4JbrVvCKZXPGjOWHvv9bfvzbnaxcfAoDxfLwSdCRT7A0g/mzsizubGJJZ445LRl6h0r09BfoGSjS3V+kp7/AwcES6WSMXCpBUzpOczpBUypOLpUgk4qTScRJJ2OHjZtS8SC2mSQtmSC2rZkEc1oztGb0I00RmR5mtsbdV4xn2UbvIV8JPOnumwHM7A7gGmDUhDwKX//FE/x8454xlxlOYcJkxgAnSHLcwXGq1aDsWBgQi4FhmAVJk8FwsjM8hPurhtlGbd/1iU3MjFhtGxZs28yo1urqTrVuPbPaOhYuGywfC8tr26wt59Tt20feh5qj1eloPDw+wuOpvX6u9Wr55PB7dUT94jHDzIiH72etLrXtjidGtXgH78XIvp51DHWxr/pIclp7X8wgHr63sdjIe1q/DuM87tox2nB8oVqFYqV6WFJaKFUoVX34b7MaxntkO5CIx0iEiV7t0o+qQyVMVivVILGujSdDOhFjXnhbuouXdrKgLcuCtizz27J0tqRoy6Zoa0qSScaPe1+DxTKP7z7Ehl19bNzVx6Y9/ZQqVRJxozmZCJPcGMm4cdEfdHBaR44lnTkWd+ZY0JYd9dIMd6cvX2Z3b56dvUPsOphnd+8QO3vz9PQXaEolwkQzQXM6SDZz6TiH8mX29RfYd6hAd3+RXb151u3opW+oRKFcPeq+JiIRM778+vPGTMYBYjHjy284n5ZMksd29tLVmuGsrhbamlK0NyVpy6WY3ZxmSWeO0zqaJiUWIiIng0ZPyBcAz9S93g5ccORCZvZO4J0AixYtmp6a1cmlE3SMcf/LWjpSn9C5+0iCxEiyxCiJ21iC7Y4kTx6WVd2JxyxI6Gq9ZGFPWczqk8Ygka6dJdQS26offsIQ1HFk3VqyXTue6mH7PzyZG0nkfWR/cNgxH5bEDp9YjH3sVnciMHwCMNY6R8Sg9l4NH/Nwj+2z62vDb9LY9RpJjP2oJxyjHUPMGO7VrH3NHiTatR5khqdrsQhOIp77/aqdUIwk18E4ZgxfrlG7dCOdiJOIj9Rp5EQr2Hgtya5di12uVilXnFj4t1brkY3Hg9e1bQbjYKjtMx4Llj9y3Vw6QTbsJW1Kx2lKxqf1lntNqQTLF7WzfFH7pG7XzJiVTTIrm+SsuZPzFWupUg0u8SiWhy9xKZQqVOq+eahUg7iBk00lhi+fyaZiZJJxWrPJcfcsJ+MxPveacyel7iIiM0WjJ+Tj4u43AzdDcMnKdO//xouXcOPFS6Z7tyIiJOMxZjXFdD9tEZETWOM+xSGwA1hY9/rUsExEREREpCE0ekL+MLDUzJaYWQq4Frgr4jqJiIiIiIxbQ1+y4u5lM3svcC/BbQ9vdff1EVdLRERERGTcGjohB3D3u4G7o66HiIiIiMixaPRLVkREREREGpoSchERERGRCCkhFxERERGJkBJyEREREZEIKSEXEREREYmQEnIRERERkQgpIRcRERERiZASchERERGRCCkhFxERERGJkLl71HWYVma2D3g6gl13At0R7FeioXjPPIr5zKJ4zyyK98wyWfE+zd1nj2fBGZeQR8XMVrv7iqjrIdND8Z55FPOZRfGeWRTvmSWKeOuSFRERERGRCCkhFxERERGJkBLy6XNz1BWQaaV4zzyK+cyieM8sivfMMu3x1jXkIiIiIiIRUg+5iIiIiEiElJAfBzO71cz2mtljdWXnm9mvzexRM/svM2sNy19pZmvC8jVmdlndOi8Ky580s6+bmUVxPDK2icS7bv4iM+s3sw/XlV1lZo+H8f7YdB6DjN9E421m54Xz1ofzM2G52ncDmODnedLMbg/LN5rZx+vWUftuAGa20Mx+aWYbwjb7gbD8FDO7z8yeCMftYbmF7fdJM1tnZi+s29b14fJPmNn1UR2TjO4Y4v2WMM6PmtmvzOz8um1NTRt3dw3HOACXAC8EHqsrexh4eTh9A/C5cHo5MD+cPhfYUbfOb4ALAQPuAa6O+tg0HF+86+b/APgP4MPh6zjwFHA6kAJ+B5wT9bFpOL54AwlgHXB++LoDiIfTat8NMEww3m8G7ginm4CtwGK178YZgHnAC8PpFmATcA7wJeBjYfnHgC+G068K26+F7fmhsPwUYHM4bg+n26M+Pg3HHe+X1uIIXF0X7ylr4+ohPw7uvgrYf0TxmcCqcPo+4HXhso+4+86wfD2QNbO0mc0DWt39QQ+i/S3gNVNfe5moicQbwMxeA2whiHfNSuBJd9/s7kXgDuCaKau0HLMJxvtKYJ27/y5ct8fdK2rfjWOC8XYgZ2YJIAsUgT7UvhuGu+9y97Xh9CFgI7CAIF63h4vdzkh7vQb4lgceBNrC9v2HwH3uvt/dDxD8nVw1jYci4zDReLv7r8J4AjwInBpOT1kbV0I++dYzEpw3AAuPsszrgLXuXiD4g9heN297WCaN4ajxNrNm4KPAZ45YfgHwTN1rxbuxjNa+zwTczO41s7Vm9pGwXO27sY0W7x8AA8AuYBvw9+6+H7XvhmRmiwm+xX4I6HL3XeGs3UBXOD1abBXzBjPOeNe7keDbEZjCeCshn3w3AO82szUEX4sU62ea2fOALwJ/HkHdZPKNFu9PA19z9/6oKiZTYrR4J4CLgbeE49ea2eXRVFEm0WjxXglUgPnAEuAvzez0aKooxyPsPLkT+KC799XPC7/V0q3oTiITjbeZvYIgIf/oVNctMdU7mGnc/fcEX19jZmcCf1SbZ2anAj8CrnP3p8LiHYx8FUI4vWN6aivHa4x4XwC83sy+BLQBVTPLA2s4/FsTxbuBjBHv7cAqd+8O591NcD3yt1H7blhjxPvNwE/dvQTsNbMHgBUEPWdq3w3CzJIEydl33P2HYfEeM5vn7rvCS1L2huU7OHpsdwCXHlF+/1TWW47NBOONmZ0H3ELwu5+esHi0v4Pjph7ySWZmc8JxDPhr4Bvh6zbgJwQ/Hnigtnz4VUmfmV0Y3n3hOuA/p73ickxGi7e7v8zdF7v7YuAfgL9z938m+JHYUjNbYmYp4FrgrkgqLxM2WryBe4Hnm1lTeF3xy4ENat+NbYx4bwMuC+flCH7k93vUvhtG2B6/CWx096/WzboLqN0p5XpG2utdwHXh3VYuBHrD9n0vcKWZtYd36LgyLJMTyETjbWaLgB8Cb3X3TXXLT1kbVw/5cTCz7xKcGXea2XbgU0Czmb0nXOSHwG3h9HuBM4BPmtknw7Ir3X0v8G7g3wh+HHQPI9cqyQlkgvE+Kncvm9l7CT6w48Ct7r5+rHUkGhOJt7sfMLOvEnxYO3C3u/8kXE7tuwFMsH3/C3Cbma0nuOvGbe6+LtyO2ndjuAh4K/Comf02LPsE8AXg+2Z2I/A08MZw3t0Ed1p5EhgE/gzA3feb2ecI2j7AZ8PfE8iJZaLx/iTB3bJuCnJ5yu6+Yir/h+tJnSIiIiIiEdIlKyIiIiIiEVJCLiIiIiISISXkIiIiIiIRUkIuIiIiIhIhJeQiIiIiIhFSQi4iIiIiEiEl5CIiMmnMLB51HUREGo0SchGRGcrMPmtmH6x7/bdm9gEz+ysze9jM1pnZZ+rm/9jM1pjZejN7Z115v5l9xcx+B7xkmg9DRKThKSEXEZm5bgWug+HHw18L7AaWAiuBFwAvMrNLwuVvcPcXASuA95tZR1ieAx5y9/Pd/f+m8wBERE4GiagrICIi0XD3rWbWY2bLgS7gEeDFwJXhNEAzQYK+iiAJf21YvjAs7wEqwJ3TWXcRkZOJEnIRkZntFuBtwFyCHvPLgc+7+7/WL2RmlwJXAC9x90Ezux/IhLPz7l6ZrgqLiJxsdMmKiMjM9iPgKoKe8XvD4QYzawYwswVmNgeYBRwIk/FlwIVRVVhE5GSjHnIRkRnM3Ytm9kvgYNjL/TMzOxv4tZkB9AN/CvwUeJeZbQQeBx6Mqs4iIicbc/eo6yAiIhEJf8y5FniDuz8RdX1ERGYiXbIiIjJDmdk5wJPAL5SMi4hERz3kIiIiIiIRUg+5iIiIiEiElJCLiIiIiERICbmIiIiISISUkIuIiIiIREgJuYiIiIhIhJSQi4iIiIhE6P8BY3XqR24bELEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 864x432 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(12, 6))\n",
    "plt.plot(x, y)\n",
    "plt.title('year  &  publication number')\n",
    "plt.xlabel('year')\n",
    "plt.ylabel('publication number')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 结论：\n",
    "从上图可知书的数量与年份之间的关系。自1920年到1970年左右书籍基本保持每年固定数量，1970年开始，书籍进入增长期，尤其是2000年到2010年左右的书籍疯狂增长。<br>\n",
    "从2010年开始，书籍发行量开始下降，可能的原因如下：<br>\n",
    "(1) 电子书的普及，导致发行版本的书籍开始减少；<br>\n",
    "(2) 部分书籍豆瓣目前还未收录。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4. 分析书籍的评分与年代之间是否有某种关系"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 分析：\n",
    "根据年份，获取所有这个年份的书籍，将这些书籍聚集起来，算出他们的平均分，作为这一年份的书籍的评分。<br>\n",
    "根据这种思路，获取从1920年到2018年每一年的评分，最后画出书籍评分与年代的关系图<br>\n",
    "因为涉及到年份，我们可以直接用上一个分析中已经对年份进行过筛选的数据进行拷贝使用。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（1）拷贝一份处理过年份的数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators  publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                     2002   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                     2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社                     1998   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                     2007   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                           2000   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2 = data1.copy()\n",
    "data2.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（2）数据清洗，处理score评分项缺失和异常值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>7</td>\n",
       "      <td>1002262</td>\n",
       "      <td>宋元戏曲史</td>\n",
       "      <td>王国维</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532524884</td>\n",
       "      <td>167</td>\n",
       "      <td>12.00元</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>436</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators  publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                     2002   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                     2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社                     1998   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                           2000   \n",
       "5   7  1002262    宋元戏曲史    王国维    上海古籍出版社                     1998   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "5                  平装  9787532524884        167  12.00元       蓬莱阁丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "4              28   8.5  \n",
       "5             436   9.0  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2 = data2[(data2['score']!='')]     # 去掉没有评分的数据\n",
    "data2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "149345"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "149345"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scores = []\n",
    "for score in data2['score']:\n",
    "    score = float(score)\n",
    "    scores.append(score)\n",
    "data2['score'] = scores\n",
    "len(scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data2[['score']].boxplot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据上面的箱线图，有很大一部分评分超出极限值，考虑到数据的准确性，这里就不再删除这部分数据了<br>\n",
    "只对评分判断一下最高分和最低分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "data2 = data2[(data2['score']>0) & (data2['score']<=10)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "149345"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "与上面相同，说明data2中所有数据都正常，无异常值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（3）获取每一年所有书籍评分的平均值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,\n",
       "       1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941,\n",
       "       1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952,\n",
       "       1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963,\n",
       "       1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974,\n",
       "       1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,\n",
       "       1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,\n",
       "       1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,\n",
       "       2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018])"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_score = np.zeros(2019-1920)\n",
    "y_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_num = np.zeros(2019-1920, dtype=int)\n",
    "y_num"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>7</td>\n",
       "      <td>1002262</td>\n",
       "      <td>宋元戏曲史</td>\n",
       "      <td>王国维</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532524884</td>\n",
       "      <td>167</td>\n",
       "      <td>12.00元</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>436</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators  publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                     2002   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                     2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社                     1998   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                           2000   \n",
       "5   7  1002262    宋元戏曲史    王国维    上海古籍出版社                     1998   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "5                  平装  9787532524884        167  12.00元       蓬莱阁丛书   \n",
       "\n",
       "  numberofreviews  score  \n",
       "0              12    7.6  \n",
       "1              16    7.5  \n",
       "2            1081    9.1  \n",
       "4              28    8.5  \n",
       "5             436    9.0  "
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "data2.index = range(len(data2))    # 重置index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>7</td>\n",
       "      <td>1002262</td>\n",
       "      <td>宋元戏曲史</td>\n",
       "      <td>王国维</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532524884</td>\n",
       "      <td>167</td>\n",
       "      <td>12.00元</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>436</td>\n",
       "      <td>9.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators  publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                     2002   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                     2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社                     1998   \n",
       "3   6  1134261    唐宋词史论    王兆鹏   \\n                           2000   \n",
       "4   7  1002262    宋元戏曲史    王国维    上海古籍出版社                     1998   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "4                  平装  9787532524884        167  12.00元       蓬莱阁丛书   \n",
       "\n",
       "  numberofreviews  score  \n",
       "0              12    7.6  \n",
       "1              16    7.5  \n",
       "2            1081    9.1  \n",
       "3              28    8.5  \n",
       "4             436    9.0  "
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2002\n",
      "CPU times: user 8.76 ms, sys: 3.37 ms, total: 12.1 ms\n",
      "Wall time: 10.8 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "publication2 = data2['publication']\n",
    "for m in range(len(data2)):\n",
    "    print(publication2[m])\n",
    "    break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "149345\n",
      "149345\n"
     ]
    }
   ],
   "source": [
    "publication2 = data2['publication']\n",
    "score2 = data2['score']\n",
    "print(len(publication2))\n",
    "print(len(score2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2min 40s, sys: 270 ms, total: 2min 41s\n",
      "Wall time: 2min 41s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for m in range(len(data2)):\n",
    "    index = 0\n",
    "    for x_data in x:\n",
    "        if publication2[m] == x_data:\n",
    "            y_score[index] += score2[m]\n",
    "            y_num[index] += 1\n",
    "        index += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([7.80000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00,\n",
       "       0.00000e+00, 0.00000e+00, 0.00000e+00, 9.00000e+00, 1.43000e+01,\n",
       "       9.10000e+00, 7.60000e+00, 0.00000e+00, 7.80000e+00, 7.40000e+00,\n",
       "       0.00000e+00, 8.00000e+00, 1.62000e+01, 1.63000e+01, 0.00000e+00,\n",
       "       8.70000e+00, 8.10000e+00, 0.00000e+00, 7.70000e+00, 8.00000e+00,\n",
       "       8.70000e+00, 0.00000e+00, 0.00000e+00, 0.00000e+00, 3.53000e+01,\n",
       "       2.31000e+01, 2.68000e+01, 3.43000e+01, 5.23000e+01, 9.85000e+01,\n",
       "       1.15000e+02, 3.44900e+02, 3.39600e+02, 6.08200e+02, 4.54200e+02,\n",
       "       2.26800e+02, 2.32800e+02, 4.85500e+02, 4.30900e+02, 1.89200e+02,\n",
       "       1.90900e+02, 1.00900e+02, 7.50000e+01, 5.41000e+01, 1.17700e+02,\n",
       "       1.42730e+03, 2.21900e+02, 2.36800e+02, 5.20900e+02, 3.68900e+02,\n",
       "       3.84800e+02, 4.52500e+02, 4.54800e+02, 1.19630e+03, 2.37170e+03,\n",
       "       2.49630e+03, 3.23960e+03, 2.78980e+03, 3.31770e+03, 3.44910e+03,\n",
       "       3.63210e+03, 3.60170e+03, 4.09330e+03, 3.98470e+03, 3.77870e+03,\n",
       "       3.58340e+03, 4.70930e+03, 5.31700e+03, 5.40020e+03, 6.95880e+03,\n",
       "       7.15500e+03, 1.08517e+04, 1.40069e+04, 1.83621e+04, 1.97160e+04,\n",
       "       2.26611e+04, 2.69689e+04, 3.38759e+04, 4.42087e+04, 5.73027e+04,\n",
       "       6.85967e+04, 7.65062e+04, 8.16782e+04, 8.38112e+04, 8.81180e+04,\n",
       "       8.66012e+04, 8.23673e+04, 7.13474e+04, 5.92437e+04, 4.83572e+04,\n",
       "       4.24944e+04, 3.79445e+04, 2.08721e+04, 9.77500e+02])"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([    1,     0,     0,     0,     0,     0,     0,     0,     1,\n",
       "           2,     1,     1,     0,     1,     1,     0,     1,     2,\n",
       "           2,     0,     1,     1,     0,     1,     1,     1,     0,\n",
       "           0,     0,     4,     3,     3,     4,     6,    12,    14,\n",
       "          41,    39,    73,    54,    27,    27,    57,    51,    23,\n",
       "          23,    12,     9,     6,    14,   188,    26,    30,    63,\n",
       "          45,    48,    54,    56,   140,   278,   295,   389,   331,\n",
       "         398,   411,   439,   433,   498,   492,   461,   432,   566,\n",
       "         646,   658,   842,   878,  1336,  1707,  2259,  2428,  2813,\n",
       "        3372,  4235,  5586,  7263,  8735,  9766, 10438, 10707, 11248,\n",
       "       11084, 10608,  9197,  7624,  6251,  5475,  4830,  2647,   119])"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_num"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "因为除数不能为0，所以我将个数为0的全置为1，对求平均值不影响"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([    1,     1,     1,     1,     1,     1,     1,     1,     1,\n",
       "           2,     1,     1,     1,     1,     1,     1,     1,     2,\n",
       "           2,     1,     1,     1,     1,     1,     1,     1,     1,\n",
       "           1,     1,     4,     3,     3,     4,     6,    12,    14,\n",
       "          41,    39,    73,    54,    27,    27,    57,    51,    23,\n",
       "          23,    12,     9,     6,    14,   188,    26,    30,    63,\n",
       "          45,    48,    54,    56,   140,   278,   295,   389,   331,\n",
       "         398,   411,   439,   433,   498,   492,   461,   432,   566,\n",
       "         646,   658,   842,   878,  1336,  1707,  2259,  2428,  2813,\n",
       "        3372,  4235,  5586,  7263,  8735,  9766, 10438, 10707, 11248,\n",
       "       11084, 10608,  9197,  7624,  6251,  5475,  4830,  2647,   119])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "index = 0\n",
    "for i in y_num:\n",
    "    if i==0:\n",
    "        y_num[index] = 1\n",
    "    index += 1\n",
    "y_num"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([7.8       , 0.        , 0.        , 0.        , 0.        ,\n",
       "       0.        , 0.        , 0.        , 9.        , 7.15      ,\n",
       "       9.1       , 7.6       , 0.        , 7.8       , 7.4       ,\n",
       "       0.        , 8.        , 8.1       , 8.15      , 0.        ,\n",
       "       8.7       , 8.1       , 0.        , 7.7       , 8.        ,\n",
       "       8.7       , 0.        , 0.        , 0.        , 8.825     ,\n",
       "       7.7       , 8.93333333, 8.575     , 8.71666667, 8.20833333,\n",
       "       8.21428571, 8.41219512, 8.70769231, 8.33150685, 8.41111111,\n",
       "       8.4       , 8.62222222, 8.51754386, 8.44901961, 8.22608696,\n",
       "       8.3       , 8.40833333, 8.33333333, 9.01666667, 8.40714286,\n",
       "       7.59202128, 8.53461538, 7.89333333, 8.26825397, 8.19777778,\n",
       "       8.01666667, 8.37962963, 8.12142857, 8.545     , 8.53129496,\n",
       "       8.4620339 , 8.32802057, 8.42839879, 8.33592965, 8.3919708 ,\n",
       "       8.27357631, 8.31801386, 8.21947791, 8.09898374, 8.1967462 ,\n",
       "       8.29490741, 8.32031802, 8.23065015, 8.20699088, 8.26460808,\n",
       "       8.14920273, 8.12252994, 8.20556532, 8.12841965, 8.12026359,\n",
       "       8.05584785, 7.99789442, 7.99903188, 7.9141962 , 7.88967369,\n",
       "       7.85308529, 7.83393406, 7.82508143, 7.8277015 , 7.83410384,\n",
       "       7.81317214, 7.76463989, 7.75768185, 7.77068468, 7.73591425,\n",
       "       7.76153425, 7.85600414, 7.88519078, 8.21428571])"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y2 = y_score/y_num\n",
    "y2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（4）画图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x, y2)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由于1950年之前很多年没有评分，都为0，导致数据不稳定，下面我们从1950年开始进行数据分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD8CAYAAAB+UHOxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsnXd4W+XZuO9Hy5K8V5ad4SRkh5DgkDDC+AEp0DLKKLOFfkC+FOigX/sV6Fdo6YTS0lJGSAulLS20pYHSNGxImQk4ITskMU7i2Fm24215SHp/f+hIlmXJlmzZsuX3vi5dkc95z9FzFPs859milEKj0Wg0Iw9TogXQaDQaTWLQCkCj0WhGKFoBaDQazQhFKwCNRqMZoWgFoNFoNCMUrQA0Go1mhKIVgEaj0YxQtALQaDSaEYpWABqNRjNCsSRagHDk5eWpSZMmJVoMjUajGTZs2LChWimVH8sxQ1IBTJo0iZKSkkSLodFoNMMGEdkf6zHaBaTRaDQjFK0ANBqNZoSiFYBGo9GMUIZkDECj0Yw8Ojo6qKiooLW1NdGiDGnsdjuFhYVYrdZ+n0srAI1GMySoqKggPT2dSZMmISKJFmdIopSipqaGiooKioqK+n2+qFxAIvJ1EdkmIttF5Bth9p8pIvUissl43R207zwR2SUipSJyR78l1mg0SUlrayu5ubn65t8DIkJubm7crKReLQARmQPcDJwEtAMvi8hqpVRpyNJ3lFKfCznWDDwCnAtUAB+JyItKqR1xkV6j0SQV+ubfO/H8jqJxAc0E1iulWowP/w9wKXB/FMeeBJQqpcqMY58FLgYGRAEc/slPaNv5yUCcWqPRDDDuZTfTVrY30WIkFJPDjnXs2MH7vCjWbAOWiEiuiDiBC4DxYdadLCKbReQlEZltbCsADgStqTC2dUNElolIiYiUVFVVxXAJGo1GMzS46dvfZtVLawBYfucd7NyzJ+LaPz73HAePHAn8vPzOO9ixe/eAyxhMrxaAUmqniNwHvAo0A5sAT8iyjcBEpVSTiFwAvAAcF4sgSqmVwEqA4uLiPk2qH3PXXX05TKPRDAF27txJyuT+BzbjhVIKpRQmU/TZ8ub0NKyjR5MyuYjf//WvPa7985p/M///nUWRcc29rR8IoroypdQTSqkTlVKnA7XA7pD9DUqpJuP9GsAqInlAJV2thUJjm0aj0Qw59u3bx/Tp0/nSl77EnDlz+NOf/sTJJ5/MggULuOKKK2hqagLg3nvvZeHChcyZM4dly5ahVPdn1jPPPJOSkhI8Hg833HADc+bMYe7cuTz44IM899xzlJSUcO2113LCCSfgcrkC6wFefvllFixYwLx58zj77LMH7HqjSgMVkVFKqaMiMgGf/39xyP4xwBGllBKRk/AplhqgDjhORIrw3fivAq6J5wVoNJrk4wf/2s6Ogw1xPeescRncc+HsXtft2bOHP/zhD0ydOpVLL72U119/ndTUVO677z5++ctfcvfdd3Pbbbdx992+ZMcvfvGLrF69mgsvvDDs+TZt2kRlZSXbtm0DoK6ujqysLB5++GEeeOABiouLu6yvqqri5ptv5u2336aoqIhjx47188ojE20dwD9EJBfoAG5VStWJyHIApdQK4HLgKyLiBlzAVcqnEt0ichvwCmAGnlRKbY/7VWg0Gk2cmDhxIosXL2b16tXs2LGDU089FYD29nZOPvlkAN566y3uv/9+WlpaOHbsGLNnz46oACZPnkxZWRlf/epX+exnP8vSpUt7/Px169Zx+umnB/L8c3Jy4nh1XYlKASilloTZtiLo/cPAwxGOXQOs6auAGo1m5BHNk/pAkZqaCvhiAOeeey7PPPNMl/2tra3ccsstlJSUMH78eL7//e/3mJefnZ3N5s2beeWVV1ixYgV/+9vfePLJJwf0GqJF9wLSaDSaMCxevJj33nuP0lJfyVNzczO7d+8O3Ozz8vJoamriueee6/E81dXVeL1eLrvsMn70ox+xceNGANLT02lsbAz7uW+//TZ79/pSYoeCC0ij0WhGFPn5+Tz11FNcffXVtLW1AfCjH/2IadOmcfPNNzNnzhzGjBnDwoULezxPZWUlX/7yl/F6vQD89Kc/BeCGG25g+fLlOBwOPvjggy6fu3LlSi699FK8Xi+jRo3itddeG5BrlHDR60RTXFys9EAYjWZksXPnTmbOnJloMYYF4b4rEdmglCqOcEhYtAtIo9FoRihaAWg0Gs0IRSsAjUajGaFoBaDRaDQjFK0ANBqNZoSiFYBGo9GMULQC0Gg0GoNdu3ZxwgknBF4ZGRn86le/6rJm7dq1ZGZmBtbce++9CZK2/+hCMI1GozGYPn06mzZtAsDj8VBQUMDnP//5buuWLFnC6tWrB1u8uKMtAI1GownDG2+8wZQpU5g4cWKiRRkwtAWg0WiGHi/dAYe3xvecY+bC+T+Levmzzz7L1VdfHXbfBx98wLx58xg3bhwPPPAAs2cnrnldf9AWgEaj0YTQ3t7Oiy++yBVXXNFt34IFC9i/fz+bN2/mq1/9KpdcckkCJIwP2gLQaDRDjxie1AeCl156iQULFjB69Ohu+zIyMgLvL7jgAm655Raqq6vJy8sbTBHjQlQWgIh8XUS2ich2EflGmP3XisgWEdkqIu+LyLygffuM7ZtERHd402g0Q55nnnkmovvn8OHDgRGQH374IV6vl9zc3MEUL270agGIyBzgZuAkoB14WURWK6VKg5btBc5QStWKyPn4hrsvCtp/llKqOo5yazQazYDQ3NzMa6+9xuOPPx7YtmKFb/7V8uXLee6553jsscewWCw4HA6effZZRCRR4vaLaFxAM4H1SqkWABH5D765wPf7Fyil3g9avw7f8HeNRqMZdqSmplJTU9Nl2/LlywPvb7vtNm677bbBFmtAiMYFtA1YIiK5IuIELgDG97D+RuCloJ8V8KqIbBCRZX0XVaPRaDTxpFcLQCm1U0TuA14FmoFNgCfcWhE5C58COC1o82lKqUoRGQW8JiKfKKXeDnPsMmAZwIQJE2K+EI1Go9HERlRBYKXUE0qpE5VSpwO1wO7QNSJyPPA74GKlVE3QsZXGv0eB5/HFEsJ9xkqlVLFSqjg/Pz/2K9FoNBpNTESbBTTK+HcCPv//X0L2TwBWAV9USu0O2p4qIun+98BSfC4ljUaj0SSYaOsA/iEiuUAHcKtSqk5ElgMopVYAdwO5wKNGNNxtzKYcDTxvbLMAf1FKvRzna9BoNBpNH4hKASilloTZtiLo/U3ATWHWlAHzQrdrNBqNJvHoVhAajUZj8OCDDzJ79mzmzJnD1VdfTWtra5f9Tz31FPn5+YFW0L/73e8SJGl80ApAo9FogMrKSh566CFKSkrYtm0bHo+HZ599ttu6K6+8kk2bNrFp0yZuuqmb42NYoRWARqPRGLjdblwuF263m5aWFsaNG5dokQYU3QxOo9EMOe778D4+OfZJXM85I2cG3znpOxH3FxQU8K1vfYsJEybgcDhYunQpS5cu7bbuH//4B2+//TbTpk3jwQcfZPz4nupihzbaAtBoNBqgtraWf/7zn+zdu5eDBw/S3NzM008/3WXNhRdeyL59+9iyZQvnnnsu119/fYKkjQ/aAtBoNEOOnp7UB4rXX3+doqIi/IWol156Ke+//z7XXXddYE1w18+bbrqJ//3f/x10OeOJtgA0Go0GXwuadevW0dLSglKKN954g5kzZ3ZZc+jQocD7F198sdv+4Ya2ADQajQZYtGgRl19+OQsWLMBisTB//nyWLVvG3XffTXFxMRdddBEPPfQQL774IhaLhZycHJ566qlEi90vxD/YYChRXFysSkr07BiNZiSxc+fOYf9EPViE+65EZIPRgSFqtAtIo9FoRihaAWg0Gs0IRSsAjUajGaFoBaDRaDQjFK0ANBqNZoSiFYBGo9GMULQC0Gg0GoNf//rXzJkzh9mzZ/OrX/2q2/61a9eSmZkZaAd97733JkDK+BHtSMivi8g2EdkuIt8Is19E5CERKRWRLSKyIGjf9SKyx3gN78YZGo0madm2bRu//e1v+fDDD9m8eTOrV6+mtLS027olS5YE2kHffffdCZA0fvSqAERkDnAzvmHu84DPicjUkGXnA8cZr2XAY8axOcA9wCLj+HtEJDtu0msGjHa3lztXbeVgnSvRomg0g8LOnTtZtGgRTqcTi8XCGWecwapVqxIt1oASTSuImcB6pVQLgIj8B99g+PuD1lwM/FH5yorXiUiWiIwFzgReU0odM459DTgPeCZ+l6AZCEqPNvHMh+XMK8zkqpMmJFoczQjj8E9+QtvO+LaDTpk5gzF33RVx/5w5c/jud79LTU0NDoeDNWvWUFzcvbD2gw8+YN68eYwbN44HHniA2bNnx1XOwSQaBbAN+LExFN4FXACE9mkoAA4E/VxhbIu0XTPEqXd1AFDb0pFgSTSawWHmzJl85zvfYenSpaSmpnLCCSdgNpu7rFmwYAH79+8nLS2NNWvWcMkll7Bnz54ESdx/elUASqmdInIf8CrQDGwCPPEWRESW4XMfMWGCfuJMNA2tvht/nas9wZJoRiI9PakPJDfeeCM33ngjAHfddReFhYVd9mdkZATeX3DBBdxyyy1UV1eTl5c3qHLGi6iCwEqpJ5RSJyqlTgdqgd0hSyqB4LE4hca2SNvDfcZKpVSxUqrY349bkzj8FkBds7YANCOHo0ePAlBeXs6qVau45ppruuw/fPgw/gaaH374IV6vt8uMgOFGVO2gRWSUUuqoiEzA5/9fHLLkReA2EXkWX8C3Xil1SEReAX4SFPhdCtwZJ9k1A0hDwAWkLQDNyOGyyy6jpqYGq9XKI488QlZWFitWrABg+fLlPPfcczz22GNYLBYcDgfPPvssIpJgqftOtPMA/mHEADqAW5VSdSKyHEAptQJYgy82UAq0AF829h0TkR8CHxnnudcfENYMbfwKoE7HADQjiHfeeafbtuXLlwfe33bbbdx2222DKdKAEpUCUEotCbNtRdB7Bdwa4dgngSf7KqAmMQRcQDoGoNEkLSOqElgpxfMfV9DS7k60KEMenQWk0SQ/I0oBHDjm4va/buafmw4mWpQhT8ACaGlnKE6N0yQn+netd+L5HY0oBdDU5nvyP3CsJcGSDH0aWn3fVYdH0dwe96xfjaYbdrudmpoarQR6QClFTU0Ndrs9LucbUUPhW92+G1lFrW5v0Bt+CwB8VkBayoj6VdEkgMLCQioqKqiqqkq0KEMau93erT6hr4yov+rWDr8C0BZAb9S7OshNtVHT3E5dSweFuoOTZoCxWq0UFRUlWowRxYhyAXUqAG0B9EaDq4MJuU5A1wJoNMnKCFMAXgCONrYFlIGmO60dHtrcXiblpgI6E0ijSVZGmALovOnrNseR8ReBTTQsgHptAWg0SckIUwDewHvtBoqMPwA8IcfvAtIWgEaTjIwoBeAKsgAqtQUQEX8n0Ny0FNJSLDoGoNEkKSNKAfhdQCbRmUA94bcAMh1WMh1W3Q9Io0lSkkoBXLHifX7/3t6I+9s6PIhAQbZDu4B6IFgBZKdaqdMWgEaTlCSVAvjkcCPlPVT5trq92C1mCrOcWgH0QL3xxJ9ht5DttOkYgEaTpCSVAnBYzT2md7raPditJgqzHdoF1AP+NhAZDitZTpu2ADSaJCWpFIDTZsbVQ9+a1g4PdquZwmwnRxraaHPrWoBw1Ls6SLWZsZpNZDms1Lm0BaDRJCNJpQDsVnOXTJ9QWt1eQwE4ADhY1zpYog0r6l0dZDqsAGQ7rdS7OvB4dYMujSbZiEoBiMjtIrJdRLaJyDMiYg/Z/6CIbDJeu0WkLmifJ2jfi/G+gGAcNjMtPVgAPhdQpwLQbqDwNLg6yDAUQJbThlKdxWEajSZ56LUZnIgUAF8DZimlXCLyN+Aq4Cn/GqXU7UHrvwrMDzqFSyl1Qtwk7oHeYgBtbiMGYBQ4VepAcFjqgxRAdqrv39qWdrJTbYkUS6PRxJloXUAWwCEiFsAJ9DRR5Wrgmf4K1hccvbmAOjzYLWZGp6dgMYnOBIpAsAsoy+m76es4gEaTfPSqAJRSlcADQDlwCKhXSr0abq2ITASKgDeDNttFpERE1onIJZE+R0SWGetK+toP3N5rENiL3WrCYjYxJtOuXUARaHB1kGE3FIChCHQmkEaTfPSqAEQkG7gY3419HJAqItdFWH4V8JxSKvguPFEpVQxcA/xKRKaEO1AptVIpVayUKs7Pz4/pIvz4XEDeiPtdHR4cNjOAkQqqLYBwNLS6g4LAPgugtllbABpNshGNC+gcYK9Sqkop1QGsAk6JsPYqQtw/hgWBUqoMWEvX+EBccdqicwEBFGZHLgYbyRkvbo+XprYwCkBbABpN0hGNAigHFouIU0QEOBvYGbpIRGYA2cAHQduyRSTFeJ8HnArsiIfg4XBYzbS0uyPub+3wkmLttACONLZ2qwVYV1bD7Hte5lB9/6yD1g4Pja3D76m5swjMlx+Qbrdgkq4jIjUaTXIQTQxgPfAcsBHYahyzUkTuFZGLgpZeBTyruk50ngmUiMhm4C3gZ0qpAVMAdsMF5I3wBN/W4csCAp8FoBQcCqkFWLWxgtYOL2VVzf2S5XsvbOP6Jz/s1zkSQUNQHyAAk0nIdFi1BaDRJCFRzQRWSt0D3BOy+e6QNd8Pc9z7wNy+Chcrfv9+m9sbeB+Mq8ODI8gCAN9cgEl5vslXbo+X13ceBaC6qa1fsmypqKeitgWlFD7DaXhQH6IAAN0PSKNJUpKqEth/cw8XB3B7vLi9CnuIAqis68wEKtlfy7Fm35NudVPfn3i9XsXemmaa2z00uCK7pIYi4RRAllN3BNVokpERowBa3b7sIL8LaEyGHXNILcCr249gs5iwmISaflgAlXUu2o3Pq6gbXqmmfgWQEWIB6JkAGk3ykVQKwG64fcLVAvi3+ZWExWxiTIY9oACUUryy/TBLpuaRm2brlwuorLozfjDc+g35p4EFWwCZTj0URqNJRpJKATiNm3u4dhD+bf4sIKBLW+jtBxuorHOxdPZoclNTqOmHC2hvVVPgfeUwKzaLHAPQLiCNJtlIKgXgD/yGawjnT/e0d1EAnbUAr+44gkngnJmjyUtP6bcFkJ5iwWYxcbB+eFkA9a4ObGYTKZbOX41sp5WWdo9un63RJBlJpQDsPcUAjAphe9CNrTDbweGGVtrdXl7dfpjiSTnkpqWQl2rrVxC4rKqZyfmpFGQ5ht3w+QaXmwyHtUvmkr8fUL12A2k0SUVSKYBAEDhcDMBQCsHpoYXZDpTyFX99criRpbNGAwQsgK4lDdGzt7qZorxUxmXZ+9VxVCnF/72wlY3ltX0+R6w0uDrIdHTNDs5y+juCagWg0SQTyaUAbL3HAEJdQABPGoPkPzN7DAC5qTba3F6ae2gsFwlXu4fKOheT89MoyHJwsB8WwP6aFp5eV859L33S53PESnAnUD+6HYRGk5wklwKIygXU1QIAWLurilljMxhvzAnIS0sBoLox9jjAXiMDaHJ+KuOyHBxt7PvoyS2V9QCs33uMnYca+nSOWAmeBeDHbwHoWgCNJrlITgUQ5sm90wLovOQxmXZMhqt76ezRge25ab4n3prmvisAnwvIp2AO9zEQvK2yHpvZhN1q4g/v7+vTOWKloTWyBaBTQTWa5CK5FIAtsgXgCuMCsppNjM303aT97h/otACqGmN/4i0zUkCL8lIpzPJXG/fNDbS1op6Z4zL4/PwCXthUOShP4OFcQDoGoNEkJ0mlAKxmwWySsBZAWxgFADAx18mEHCczxqQHtvkVQF8sgLLqZsZl2nHaLAELoC/FYF6vYltlPXMLMrj+lEm0dnj560cHYj5PrJ8ZPAzGj8NqxmYxaReQRpNkRNUMbrggIhHHQgZiANauOu9Hl8zB7e3asC3HmH1b3RcLoLqZonxfc7kxmXagb7OH9x9robHNzdyCTGaMyWBRUQ5//GA/Ny2ZjNk0MM3lmtrdeBXdLAARIVtXA2s0SUdSWQDge8IPrwDCWwCT89OYNjq9yzabxUSmwxqzBaCUoqyqicl5aYHPyk9P6VMm0JaKOgDmFmQBcMMpk6isc/H6ziMxnytaQltBBzMcqoFbOzwRW4FrNJruJJUFAOCwmWiNUAdgMQlWc3Q6L68P/YCqm9ppbHUz2bAAAMZlOTjYh+Ey2yrrsVlMHDfap0zOnTWacZl2/vD+vi7xingSrhGcn0zH0LYA2tweFv/0DSwmE+fMHMU5M0dz2nF53RS+RqPpJKq7oYjcLiLbRWSbiDwjIvaQ/TeISJWIbDJeNwXtu15E9hiv6+N9AaH05AKK5WaQm5YSczVwcAaQn4I+FoNtqahn1tiMgMKymE1cd/JE3v+0ht1HGmM+XzR0KoDuzwXRWgAX/uZdHnmrNO6y9cbh+lbqWjrIT09h9ZZD3PTHEubf+xo/+Nf2Phf0aTTJTjRD4QuArwHFSqk5gBnf9K9Q/qqUOsF4/c44NgffIJlFwEnAPcaQ+QHDYbNEaAft6eb/74n8tNj7AfkzgKbkpwW2+dtBxHIT8noV2w82MLcgs8v2qxZOwGYZuJRQ/+yCsC6gVCt1UYyFLD3axK7DA6OgeuJIg+//6q4LZrDxe+fyx/86iXNmjeb37+3jxc0HB10ejWY4EO0d0QI4RMQCOIFo/6I+A7ymlDqmlKoFXgPOi13M6HFYTWGbwbW2e2K0AGwxdwQtq27GZjEFsn/A5wJqc3sDg2aiYV9NM01GADiYnFQbl84v4O8lFewZACugpxhAltNGXUt7j4rM41W4OjwJmR98uMGXaTUmw47NYuL0afn86soTmDc+ix/8a0dM379GM1KQaJ5MReTrwI8BF/CqUurakP03AD8FqoDdwO1KqQMi8i3ArpT6kbHue4BLKfVAT59XXFysSkpKYr6Y+z68jxd2fITb42VOyM1zz5FGWjo8zCvMiupclbUuDtS2sKgol2gnOu460khbh4fjgz6jtrmdXUcamVuQSWpKdCGX6qY2So82cXxhFs6Q0ZYdHi+bK+pxWE3MGpdJPPOBDtW3sr+mmYWTcrplGh2sc1F+rCXsPj8er+KjfcdIs1uYMy4z7JqBIpLsLe0etlbWk5tqY+qotB7OoNEknhk5M/jOSd/p07EiskEpVRzLMdG4gLKBi4EiYByQKiLXhSz7FzBJKXU8vqf8P8QihPE5y0SkRERKqqqqYj08gFnAE0apeRWYYpjNazH71nZ4vFEf09rR3cqwGd1H29zRn6e5zYPJSGkNxWo2MSnXSWOrmyNxbjXt9ngRIewN3h+LcPeQZeP/3t2ewfe5t7u9mE3STXanzUxBlp3qprYhHcTWaBKCUqrHF3AF8ETQz18CHu1hvRmoN95fDTwetO9x4OrePvPEE09UfeX2v36sTv3ZG922X73yA3XZo+9FfZ6Xtx1SE7+zWm2tqItqfbvbo6bc+W/1s5d2dtl+rKlNTfzOavW7d8qi/uwrVryvLnnk3Yj7vV6vuuHJ9WrG/72k9lc3R33e3vjeC1vVvB+8EnbfK1F8H58ebVQTv7M64jkGklv+vEGd9fO3wu5r7XCrs3+xVp3y0zdUY2vH4Aqm0QwSQInq5d4a+oomBlAOLBYRp/iqpc4GdgYvEJGxQT9eFLT/FWCpiGQblsRSY9uA4bCaw3YDdXV4urSC7o08ox9QtIHgiloXbq9iclAGEPjaKDht5qgzgbxexfbK+m7+/2BEhB9/fi5mk3Dn81viluUSrg2En+zU3juC+mMv9a6OQc/HP1LfyugMe9h9KRYz9102l4P1Lh54ZdegyqXRDGV6VQBKqfXAc8BGYKtxzEoRuVdELjKWfc1IE92ML2PoBuPYY8APgY+M173GtgHDYTVHaAbnJcUSiwIwOoJGGQj2ZwBNzu/qZxYRXy1AlMVgZdXNNLd7usUwQhmX5eCO82fwXmkNfyuJT4uI+jBtIPxkOXrvB9Tc5ssiUgoajfeDxeGG1kDldThOnJjDlxZP5A8f7GP7wfrBE0yjGcJElQWklLpHKTVDKTVHKfVFpVSbUupupdSLxv47lVKzlVLzlFJnKaU+CTr2SaXUVOP1+4G6ED9Om5mWDk+3p+K2jtjSQHP9/YCitADKqow20CEWAPhu1tE2hNtmtIA+vrD3IOo1J01gUVEOP/r3To429j8e0NCDBZAV6AjauwUAgzs9TCnF0Ya2iBaAn2+eOx2LSXjh48pBkkyjGdokXysImxmlugddwwVoeyLVZsZuNUXtAiqrbibbaQ24SoKJZTDM1sp67FYTU/N7z1gxmYTvXzSbxlY3b+48GtX5e6InF1DnTIAeLID2zqf+OtfgpV0ea26n3eNldEZKj+synVaWHJfPmq2HdXGYRkMSKgB/5kxoHMDV4QmbVRMJESE3NSXqWoCyqqZu7h8/BVl2aprbw8YmQtlqVABbomxZMX10OukpFrZW9t+tUe9yh60CBl8WUHqKpecYQFvn9Q1mxk1wDUBvXDB3LJV1LjYdqAu7/1C9i0feKsUdQ/aXRjNcSVoFEFoN7GsFEdvl5qWnUB1lAZF/DnA4xkU5F8DjVWw/2HMAOBSTSZhdkBFwHfUVpYxW0BEsAPA9QUdvAQyeAjhiKIDRPcQA/Jw7azRWs7Bm66Gw+3/56m5+/souVm8Jv1+jSSaSTwHYuk8FU0oZrSBiawyWl2qLaixkQ2sHRxvbujSBC6YgMBegUwEopfjGsx9zxYr3+cWru3ivtJodBxuiCgCHcnxhFjsPNdIeQ63BE+/u7aI02txe2j3eiC4g6L0fUNcYwOC5gA7X+/6PorEAMh2R3UBHG1v55yZfkfsjb5XqzqKapCfpFIA9jAXQ5vaiVPdW0L2Rl5YSVUvoLQd8N9JI1a/jwiiAV3cc4YVNB6luaufRtZ9y7e/Wc+HD7wJ0qSSOhjkFmbR7vFE3idtxsIEfrt7B1579OKA0Ao3gImQBgS8O0FObh6Y2d2DE5mC2gzjc0IoI5Kf3HAPwE8kN9PQH++nwern9nGnsOdrEqzsOD4S4Gs2QIekUQLgYQFtgGExsCsDfD6i3J8EN+2sRgRMmhL9x+2cP+2sB2t1efrpmJ8eNSuPHpxJ9AAAgAElEQVS1209n093n8vsvL2T5GVP40skTY25Z4HcZResGenr9fswmoayqmSff2wt03rB7sgDSUiw0tUZO72xpc5OWYsFpMw9qDOBIfSt5aSlRt/oO5wZq7fDwp3X7OXvGaG77f1MpykvlN2+Whg0W3//yJ3zh8Q+0haAZ9iSdAvD3zgl2R7S6uw+Ej4bctBTcXkVDa883sw3ltUwfnR7x6dlqNjE6w06lMRryT+v2s6+mhbs+OxOL2US63cpZ00dxx/kzuPfiOTFP/JqY44w6ENzY2sELH1dy6fwCzpk5mofe2MPh+tYeG8H5SUux0NRDfn9zu4e0FAtZjug6h8bCI2+V8u8IfvnDDa1RuX/8hHMDrdpYSW1LBzctKcJsEr5yxhS2H2xg7e6ubUn+XnKAR9d+yod7j/FBWU3fL0ijGQIknQIIuICCFYB/GlgMhWAQXTWw16v4uLyW+RN67nLtLwara2nnoTf2sOS4PM6clh+TPJEwmYQ5BZlRKYDnP66kpd3DdYsncvfnZuH2Kn68Zmd0FoC9Fwug3Y0zxUKm0xZ3C2Dl22U8vW5/2H1HGiJXAUfC7wbaXFGP16t44t0y5hT4Rm8CXDK/gIIsBw8HWQFbKur47gvbWDw5hwy7hec2VPTvojSaBJN0CiAQBA5yAfnfx9IKAqKrBi6taqKx1c2JE3tWAP65AA+9UUpjawff/ezMLnOI+8vcwkw+6SUQrJTi6XX7Ob4wk3njs5iQ6+QrZ0zhX5sP8sp2n7+7pyyg9BSLb25wBNdHc5uHVJuZLIeV+jjWATS2dlDv6mDXkcawLhlfFXB0/n8/fjfQv7cc5D97qvi0qpkbTysK/J/YLCaWnzGZDftrWVd2jOqmNpb/aQP5aSk8eu2JXDhvHC9tO9SrdajRDGWSTwGEiQFEGgjfG50KILIFsGF/LUCvCsBfDfyndfv4QvF4ZozJiEmW3ogmEPzh3mPsPtLEdYsmBrZ95cwpFGY7+FuJ72m2NwtAKWiJUM/Q0u7GabOQ6eg5WBwr/vTZY83t3ZRxa4eHupaOmFxA4LvO06bmsWbrYX73ThmjM1L47NxxXdZcUTye/PQUfv3Gbm77y0Zqmtt5/IsnkpNq44ri8bR2eFmj00U1w5ikVQDxcAHlGi6gnorBNuyvJSfVxqRcZ4/nKsiy4/EqrGYT31w6LSY5oiGaQPDT68vJsFu4cF7njc5uNfO9z80K/JxhjzyzIC3FpxwiuYGa2zykppjJ6qVeIFYqjnVmT4UquEANQIwKADrdQO+V1nD9KZMCrbv92K1mli2ZzLqyY6wrO8ZPL50bSNGdV5jJ1FFp/F27gTTDmORTAAEXUKcrxK8AUmLMAsp22jBJzxbAxvJaFkzI6tWdU5jjUxBfOWMKo9Jjv1n1xsQcJ+l2C1siKICqxjZe3naIy08c380VtnTWaM6Ylk9uqq3HCuQ0Qzk0tYW/uQcsAKcvCByvdgvBBXSh4yYPGzMRemoEF4mls8ZgNfvmLlxz0oSwa65ZNIHJeaksP2MKly4oDGwXEa44sZAN+2sDjQA1muFGdCOqhhEpFhMi4AqqSvUrgFhaQYBvMEpOqi1iDOBYcztlVc1cfmJh2P3BnDY1j/svP56LTxjX69q+YDIJc8ZlRrQA/lZygA6P4trF3W90IsKj1y4ItFSIRLox0awxggXQ5LcAHDba3V5aO7wxx13CUVnnIsViwmkzd7MAYmkDEUqm08p/nz6FLKc10OwulNQUC2/8zxlhFfzn5xdw/yu7eG5DBf973owu+/6yvhynzcwl8wtilisSpUcbue/lXWQ7rdx/+by4nVczckk6BSDGJC1XHGIA4IsDRLIAPi43/P+9ZACBLxX0C8XjY/78WJhbmMlT7+2j3e3t4s7weBV/WV/OqVNzuwysDyY1xRJxn59OCyC8AvBbAIHGca52HDZH2LWxUFHbQkG2g1HpKXxyOIILqA8WAMC3PjO91zWRrLtRGXbOmJbPqo2V/M/S6YH03Qdf282v39iDw2rmzOn5EZVLtNQ2t/PrN/bwp3X7UUrhVXDlwvGcODGnX+fVaJLOBQSEUQD+OoDYn0Z9xWDhFcCG/bVYTBJz5e5AESkQ/Or2w1TWuboEf/tCmmEBhIsBeL2KlnYPqSmWQCA5XnGAyloXhdlOpo9OZ8+Rxi5ZSIfr23DazAHrZLC5/MRCDje08m5pNUopfmnc/M+ano+rw8Of15f36/x/WrefMx9Yyx8/2MfVJ43nP98+i5xUG796fU98LkAzoklKBWC3mnG1d8YAXP1QAD4LILwLaGN5LbPGZcTFzREPjg8TCG7t8PBjo+r4nFmj+3V+vwIIN+zF/x3700Ahfu0gKmpdFGQ5mD4mg+Z2T5eYwBGjCCyeKbWxcPbMUWQ5rfy95AAPvrabh97YwxeKC3ni+oWcPi2fp97fR5u79y6w4VhXVsP3XtjG7HEZvPT10/nRJXMZn+Nk2emTeWdPdSADTaPpK1EpABG53Zj4tU1EnhERe8j+b4rIDhHZIiJviMjEoH0eEdlkvF6M9wWEw2Ezh00DjTUGABgtobtbAB0eL5sP1LMgCvfPYDExt3sg+NG3SqmodXHvxXOibpUQiXR7ZAvA3wnUVwgWPwvA1e6hprmdwmwH08f4XFTBFs7hPhSBxZMUi5mL543j31sP8dCbpVxZPJ6fXXo8JpOwbMlkqhrbAg3mYmXl22Xkptp48oaFTB+THtj+xcUTyUm18es3tBWg6R+93hFEpADfmMdipdQcfEPfrwpZ9rGx/3h84yPvD9rnUkqdYLwuYhCI5AJKsfQhBpBuo7nd023M5CeHGnF1eHrN/x9MRLoGgvdVN7PiP2VcfMI4Tp6S2+/zp6ZEjgH4ZwGk2swBn3e4YrAOj5fb/7qJzRH68YdSWdcCQGG2g+NG+26Cu4IVQH3PoyAHgysXTsAkwpXF4/nppXMxGbGAU6fmMnNsBr99uyzmjKg9Rxp585OjfOnkSd0s19QUCzcvmczbu6sCcaieaGjtYMP+AZ3EqhmmRHtHtAAOEbEATqDLI41S6i2lVIvx4zqg97SYASR0LnCr24PNYgr8YcZCXmr4YrCN5dEVgA02wRXB97y4nRSLie9eMDMu57aaTditprAKIGAB2CwBF1A4C2B/TTPPf1zJ7X/bFNWAnAqjgV5BloMMu5VxmfZAKqjXqzjamFgLAGDWuAzW33U2P7tsbpffMRHh5iVF7Dna1K2nUG/87p29pFhMfPHk8HGbL508kWyntVcroMPj5canPuKyxz6g9Gh03WI1I4dohsJXAg8A5cAhoF4p9WoPh9wIvBT0s11ESkRknYhc0i9po8RhzAX209ruwd6Hp3/wWQDQXQFs2F/LmAx7oNXzUGGuEQh++M09/Gd3FbefO41RcbxBpqVYw6aB+pvvpaaYcdrMWEwStiGc/4ZeVtXMo2s/7fXz/OsLs311FNPHpAcUwLGWdjo8ijG9jIIcDPLSUsLGIT53/DjGZNj57dtlUZ/raEMrz39cyRXFheSEGTEKhhVw+mTW7qqKON0M4GcvfcJH+3zdav3V3hqNn2hcQNnAxUARMA5IFZHrIqy9DigGfh60eaJSqhi4BviViEyJcOwyQ1GUVFXF9rQUisNqprW9awygr4Ha3FT/cPiu7owN+2uH3NM/dFYEP/RmKTPGpPOlCE+QfSXdHr4jaHNbpwUgIhFnBxw0OqKePDmXx9aWsqeXGQaVdS6sZmGU0et/2ph0yqqa6fB4+1UENljYLCa+fOok3v+0Jup23X/4YB8dXi83nTa5x3VfOnmSzwp4fXfY/f/ecogn3t3LDadM4tyZo1m1sYIOPepSE0Q0j8XnAHuVUlVKqQ5gFXBK6CIROQf4LnCRUirwuGxYECilyoC1wPxwH6KUWqmUKlZKFefn969LpsMWEgPowzQwP3np3V1ARxpaqaxzsWAIKgB/IBjgh5fMiXq2cLT4ZgJ0v7E3t3VaAODrtVMfxgVUWdeC2ST8+uoTSE2xcOeqrT321a+odTEuyxFwrUwfnU67x8v+muZ+tYEYTK5eNIG0FAu/fad3K6C5zc3T68r5zKwxTIowYtRPWoqFm5ZM5q1dVdy5aguH6juzo0qPNvK/z21mwYQs7rpgJlcuHE91Uztv7Dza7+vRJA/R3B3KgcUi4hSfjXs2sDN4gYjMBx7Hd/M/GrQ9W0RSjPd5wKnAjngJHwl7mCBwrH2A/OSmdrqAapvb2XygLtCWeChaAL4WBeP579Mns3BS/AuFIs0E8McAUm0+5ZPltFEXJgh8sM6Xtjkq3c7/fXYWJftreeajyLnylbUtgZGaANP8geDDTYEq4KGuADLsVq5aOJ7VWw51uUmH428lB6h3dbDsjJ6f/v3ceFoRXz51Es9tqODMn6/lp2t2UlnnYvnTG7FbzTxy7QJsFhNnTMtnVHoKfys5EI9L0gwA75VW89ce/hYGgmhiAOvxZfZsBLYax6wUkXtFxJ/V83MgDfh7SLrnTKBERDYDbwE/U0oNuAIIdQG5OrzY++gCslt9RUa/fG0383/4Ghc/8h6/ebOUvLQUZo2Nb0fPeHH3hbO4M06B31DS7ZbwMQBDKfgzhbIc4RvCVda5KMj23dAvW1DAKVNy+dmaTwJP86FU1LoozO5UAFNHpWES2HW4gSP1sY2CTCRfPHkiHq9i1cbKiGvcHi9PvLuX4onZUacX261m7rlwNm/+z5l87vhxrHynjNPue5OyqiYeuno+YzN9353FbOLyEwtZu+towHXWE652D0+9t5dG3e560Fi1sXLQC/yiKp9USt0D3BOy+e6g/edEOO59YG6fpesjDpspjAXQd1fI/yydRll1MxNynL5XrpNJuandukeOBNIixQAMheufyJbpsHZr2wC+qt6TjKErIsJPPj+Xz/zqbX6yZie/vqqrd7DN7eFoYxsFWZ2dVu1WM5PyUtl1pJFMhzWmUZCJZGJuKgsnZfOPjRXccuaUsAHjl7YdpqLWxd1B3VmjZXyOk198YR7LTp/Mo2tLWTgph1On5nVZ84Xi8Ty69lP+sbGCW8+a2uP5HvvPpzz0xh72Vjfzg4vnxCyPJnbKjzUzPqfnrsLxJul6AYHPAnB7VaAnTluHp1/9WG44tSiO0g1v0iO4gFra3ZhNEqi1yAwTBPZ4FYcbWru4dCblpfKF4vE8t8EXoAy+mfsDxsEWAPjiAJ8cbmR8jrNPTeASxWULCrlj1VY2HajrNkFOKcXKt8uYnJfKOTP7XrE9fUx6N0XqZ1JeKouKcvhbyQG+csaUiGnRVY1t/O6dMhxWM0+vL+eaRRO7FKJpBob9NS2cEacpgdEy9B+d+oDD8EP7rQBXh6dPjeA03fGPhQwtbGpu8+C0mQNPtlkOG01t7i5ZJ0caWvF4VbfU2VOm5OLq8LClomuWTKW/BiBEAUwbnc6+mmb21zQPef9/MBccP5YUiymsG2hd2TG2VtZz05LJfapXiZYrF45nf00L6/dGLgz7zZt7aHN7+fPNi0hLsXDv6u1xa+2tCY+r3WftTuxlrki8Scq7YuhUsNYOb5/aQGi6k5Zixe1VtIWMnmxpdwcCwECgI2hDkBVwsC78Dd3vElq/t+uQ9YpaX21hQYjCmDEmHaV8T0yxjoJMJBl2K0tnj+HFzQe79Qda+fan5KXZuHRB/NpHh+P8OWNJT7FEDAbvr2nmL+vLuWrheBZMyOb2c47jvdIaXttxZEDlGukcMH7XJ+T2nPkVb5JTAdh8l+WvBm7t6HsaqKYr/pbQoYHg5nYPzpTO77izJXSnAvA3cSvI6vrUnpuWwnGj0lhf1vWptLLOhdkkjA3J858W5I4YTi4g8AW+610dvBmUjrn7SCNv7ari+jBtH+KNw2bmohPGsWbrobB1Gg+8uhur2cTXzz4OgGsXT+S4UWn86N87+9zUTtM7+2sMBTDIMYDkVADWroPhtQKIH+kR+gG1tHW1AMK1hPYrgHDV04sm51Cy7xjuIJdRRa2LMRn2brUME3OcgQD8cHIBASw5zpeO+Y+NnVW5K9/2+duvWxzfor1IXLlwPG1uL9/+++YuGUFbK+r51+aD3HhaUaB63Go2cc+Fsyk/1sKT7+4bFPlGIvtrmgHf7/ZgkpQKwN5NAXhJ0TGAuBBpJoB/HrCfzEBL6M5agMpaF9lOK05b99yDRUW5NLd72Hawocv6UHcR+FIapxrDa4ZyFXA4zCbh8/MLWLuriuqmNg7Xt/LPTZV8obiQ7AhtH+LN3IJMvv2Z6azdXcXZv1jLyrc/pcPj5f5XPiHbae1Wg3DacXmcO2s0D7+5h6O9TI3T9I3yYy2k2zuHKQ0WSXlXDMQA2j14vIp2j44BxIuACyhkLnBztxiAvyNo1xhApN5JiyYbcYCyzjhARW0LhRHWzzDcQMPNBQRw6YJC3F7Fi5sO8vv39+LxKm5aEl3hVzwQEW49ayqv3X46iyfn8pM1n3Dmz9fyzp5qbj1rKhn27jeh714wkw6P4qKH32P5nzbw69f38Or2w1ohxInyYy1MyHEO+lyL5FQARi56S7sn4LfULqD4EMkCaGn34AyayhWuI2hlnatbQNfPqHQ7k/NTA9kpHR4vhxtau6WA+pk3Pgu71cTYIdaMLxqmj0lnTkEGz3xYzl/WlXP+3LGDnv8NvtqEJ25YyBPXF2M2CUV5qRG7j07KS+Xha+Yzf0IWu4408qs3drPsTxs47f632FIRXWtvTWTKa1oGPQMIkrQOwF+M5OrwdM4DHoFFWwNBeoS5wM1tblKDqq0zQhSAUorKWhenTOlanBTMoqJcVm8+6KsXqG/Fq7pnDPm5dtEEzpk1OqCQhhuXLSjkB//yFcX/9+mD9/QfjrNnjuaMafm4vYqUHlqmLJ09hqWzxwC+/+9PDjdw658/5va/bmL1V5cMmcl4ww2PV3GgtiXw3Q4mSXlXDI4B9GccpKY7aZGCwO2eLr59s0nIsFsCLqCGVjfN7Z6IT/QAiyfn0NjmZuehhm5toEOxmE0RrYnhwEXzxmExCYuKcobETGmL2RTT30hqioUTJ+bwwBXz+LSqmfte/mQApUtuDtW76PAobQHEi+A6AH8tgH46iQ/h0kCVUr4YQErX7zjTaaWuxRcE9hd19TQ/YVGRb2rZurKaQBB5ON/keyI3LYUnb1jIpEHO+443px2Xxw2nTOKp9/dx9sxRLDlucCtZk4HyY4lJAYUktQD8N3tXuydoHKRWAPEgxWLGZu46Fay1w4tSdMvuyXLYAnUAgSKwHm7oYzLtTMx1sn7vMSrrXIjA2KzhF+SNltOn5TMhAU998eaO82cwJT+Vb/99S9gW4JqeKU9QDQAkqQLwt352BVkAuhVE/PC3g/ATaAUdYgEED4XpqQYgmEVFOXy07xjlx1oYlZ6iFfcwwG418+CVJ1Dd1MbdL25LtDjDjv3HWrCaJSHTBZPyrmgympL5LABfEFingcaP0JkA/mlgqSEWQPBQmIN1LmwWE3lpPee6LyrKpa6lg7d3V0f0/2uGHscXZvG1s4/jn5sO8s9NkVtea7pTXtNCYbYT8wD2gIpEUioA6JwK1qqDwHEnLaXrTIDQaWB+spzWgAuowkgB7S3P2V8PUN3UlrT+/2TlljOncOLEbO5atZXSo02JFmfYUH6sJSFpwJDECsBpNXexALQCiB++mQCdvt6W9s55wMFkOnxBYK9XcbCHGoBgCrOdgXWRUkA1QxOL2cTD18zHbjXzlac3BCxDTc/sr2ke9BYQfqJSACJyu4hsF5FtIvKMiNhD9qeIyF9FpFRE1ovIpKB9dxrbd4nIZ+IrfmTshgXg0jGAuBM6E8A/DKabBeCw4VXQ1O6mstbFuCgDun4roKeUUc3QZGymg4euns+nVU3cuWqrbiPdC3Ut7TS0uhOSAgpRKAARKQC+BhQrpeYAZuCqkGU3ArVKqanAg8B9xrGzjLWzgfOAR0VkUB7FHVZz1zRQbQHEjdAgsH8cZDcLwOhrUtXY1m2yV08snuxLB9UuoOHJqVPz+Oa503hx80H+ZMzP1oTHnwKaKBdQtHUAFsAhIh2AEzgYsv9i4PvG++eAh40B8hcDzyql2oC9IlIKnAR80F/Be8Nh7RoDSNEKIG50CwL7LYBuaaA+BfDJId9oyGgtgM8dP5Yj9a2cPCU3HuJqEsAtZ05lY3kdP1y9g+mj05k6Ko0Oj29Kn4jPuhvsvjdDEX8b6ERZAL0qAKVUpYg8AJQDLuBVpdSrIcsKgAPGereI1AO5xvZ1QesqjG3dEJFlwDKACRMmxHgZ3XHYzDS3uQODS7QLKH6khQyGD8QAugWBfRk/Ow75Jn1F+0TvtFn4qtGPXjM8MZmEX35hHp/7zbtcuXJdt/2//MI8Ll1QmADJhhaJLAKDKBSAiGTje5IvAuqAv4vIdUqpp+MpiFJqJbASoLi4uN+OQ7vVTFVjG652DyJgGwaDw4cL6SkW2tzewMzlQBZQqAVguIB2GC2edVB3ZJHltPHMzYt5ZfthrGYTVrMJm8XEk+/u5Rev7uazx48d8XUe+2uayU9PCdsifTCI5lPPAfYqpaoARGQVcAoQrAAqgfFAhYhYgEygJmi7n0Jj24DjtHXGABxWszY344i/H1BzmxubxUZLuxuTdLey/O0cthsKYLj17tf0n/E5zm6trkdnpPDFJz7kL+vL+fKpRQmSbGjgbwOdKKJ5LC4HFouI0/Drnw3sDFnzInC98f5y4E3lC/+/CFxlZAkVAccBH8ZH9J4JxADcehpYvEkz+sX74wBNxjSwUCXrVwBHG9t0Va8mwGlT8zh5ci6PvFU64lNFy2taEpYCClEoAKXUenyB3Y3AVuOYlSJyr4hcZCx7Asg1grzfBO4wjt0O/A3YAbwM3KqUGpTBonajDsDV7tWtoOOM3wJoaPXVArS0ebr5/8H3f+C3ChJR5q4ZmogI3z5vOtVN7fz+vb2JFidhtLk9HGpoTWg/qKgcT0qpe4B7QjbfHbS/FbgiwrE/Bn7cVwH7isNmprXDqy2AASAwE8AIBIdOAwsmy2HjcEer9v9rurBgQjbnzBzN42+Xcd3iiYGEgZHEgWMulEpcABiSuBLYYTXT7vHS0ubWCiDOhM4E8E0DC/8d+wPBOqdfE8q3PzOdpjY3j/3n00SLkhAOHEtsCigkuQIAONbSoVNA40xayFSw5jZ3xCyGjCTv66/pO9PHpHPJCQU89d4+jozA2cL7a5oBmJCTuJkQSXtntBszAWqb27UFEGfSU7oOhWlp93QZBxmMvxhMxwA04bj9nGl4vIo7V20dcQPm9x9rwWkz99ohdyBJWgXgNG76tS3tug1EnOlmAbS7uwyED0a7gDQ9MSHXyXfOm8Hbu6s484G1PPja7hGTGVRe40sBTWSKetIqAP9UsMZWHQOINw6rGZN0BoFb2nqwAIzgnlYAmkjcfPpkXv/mGZw1fRS/fmMPZ/x8LX9ZX570jeQSXQMAyawAgm76KToGEFdEpEs/oOY2N6kRLIBzZ43musUTyHAk5fhpTZyYlJfKI9cuYNUtpzAp18ldz2/ltr98HGgzkmysK6thf01LQgPAkKRD4aFr/39tAcSfdLuVxlZ350D4CEHghZNyWDgpZ5Cl0wxXFkzI5u/LT+a375Tx05c+YW91M7+9vjhpLMimNjc/e2knT68rZ0KOk6tO6n/fs/6QtI/GjiCXhI4BxB+fBdBBm9uLV3VvBKfR9BURYdnpU3jy+oUcONbCRb95l4/2HUu0WP1m7a6jLP3lf/jz+nJuPK2Il7+xhCn5aQmVKXkVQBcLIGkvM2H4poK5I84D1mj6y1kzRvH8raeS4bByzW/X8cAru4ZtptALH1dyw+8/wpli4bnlp/C9z81KWAO4YJL2zthFAegeNHEnLcU3FKbFmAXgjBAE1mj6w9RRabxwy6ksnTWGR9aWcsrP3uTrz37Mx+W1iRYtajxexa/f2MPscRn8+2unceLE7ESLFCDxKmiACHYB6RhA/EmzWzhQ20KzEaSLFATWaPpLptPKI9cuYF91M3/8YD9/LznAPzcdZProdOZPyGJOQSZzCzKZPiYds0lobHXT2NpBY6ubIw2t7K1uZl9NM/uqW6htaeeSEwq4etGEQEX7QPPStkPsrW7m0WsXDLmGiEn7V9tFAein07iTblgA/lkA2gLQDDST8lK5+8JZfHPpNFZtrODV7Ud4adthnv3oAAAiEClzNMNuoSgvFavZxI/X7OTht0q5/uSJXH/KJHLTUgZMZqUUj639lMl5qXxm9pgB+5y+krQKILgDqO4GGn/8aaAt2gLQDDJpKRa+dPIkvnTyJJRSVNS62FpZzyeHG7GYhAy7hXS7lXS7hbz0FIpyU8lO7ay2/bi8lhX/+ZTfvFXKynfKuOO8GdwwQHMJ3t5TzfaDDdx/2fGYTUNvJknS/tVazCZsZhPtHq92AQ0AaXYLLe2eQDsIHQTWJAIRYXyOk/E5Ti6YOzaqY+ZPyObxLxZTerSJn6zZyff/tQOHzcyVC+OfkvnoW6WMzbRzyfywk3ATTlI/Gvuzf7QCiD9+/6m/iVeqTgPVDDOmjkpjxXUncvq0fO5ctZWXtx2O6/k37K9l/d5j3LRkMrYh6oUYmlLFCX8cQNcBxB//TIAjDW0AQyKlTaOJFZvFxIrrFjBvfBZfe/ZjPvi0Jm7nfmxtKdlOK1efNL73xQmiVwUgItNFZFPQq0FEvhGy5ttB+7eJiEdEcox9+0Rkq7GvZKAuJBz+G7+uA4g/aSnGuEdtAWiGOU6bhd/fsJCJOU5u/mMJ2yrrw65TSlF6tInfvVPGXz8qx+uN3Kto1+FGXt95lBtOKRrSD0e9SqaU2gWcACAiZnxD3Z8PWfNz4OfGmguB25VSwaV7ZymlquMldLQ4jC9eu4Dij78j6JHGVkR0rYVmeJPltPHHG0/i8sc+4NJH32fKqDSm5KcyJTxMss4AAArNSURBVD+NwmwH2yrreWtXFeXGEBeA13Yc4RdfOCEw+9pPfUsHP1mzk1SbmetPmTjYlxITsaqms4FPlVL7e1hzNfBM30WKHw4dAxgwOmMAbTitZkxDMMNBo4mFsZkOnl22mD9+sI/So01sqajn31sPoZTPi3DqlDyWnT6ZM6fn8/qOI/zo3zu56OF3WXHdicwcm4Hb4+WZjw7wy1d3Uefq4LsXzBzyoy5jVQBX0cPNXUScwHnAbUGbFfCqiCjgcaXUygjHLgOWAUyYEJ9ovD8GoF1A8aczBtAacRaARjPcGJ/j5LufnRX4ubXDQ0Wti8JsR5cHyRtOLWJuYSa3/Hkjn3/0PW49cyqrtxxi15FGFhXlcPeFs5g9LjMRlxATUd8ZRcQGXAT8vYdlFwLvhbh/TlNKLQDOB24VkdPDHaiUWqmUKlZKFefn50crVo90xgC0BRBv0oKmgkWaBaDRDHfsVjNTR6WFvYecODGH1V9dwrzCLH7x2m6a2908du0Cnl22eFjc/CE2C+B8YKNS6kgPa7pZCEqpSuPfoyLyPHAS8HasgvYFu1YAA4Y/BgC6CEwzcslPT+HPNy3i/U9rOKkoZ9jda2LxjfTo2xeRTOAM4J9B21JFJN3/HlgKbOubqLETsACGaA7ucCa48EsXgWlGMhazidOn5Q+7mz9EaQEYN+9zgf8O2rYcQCm1wtj0eeBVpVRz0KGjgeeNmZcW4C9KqZfjIHdUOG1mrGbBYtYKIN6YTUKqzUxzu0fPAtBohilRKQDjpp4bsm1FyM9PAU+FbCsD5vVLwn5w8pRc6lwdifr4pCfNbqG53aMtAI1mmJLUf7nnzRnLeXOi6w+iiZ20FAtHaNOdQDWaYYr2jWj6TJrdVwCjg8AazfBEKwBNn0k3bvzaAtBohidaAWj6jL8WQFsAGs3wRCsATZ/x1wLoQjCNZniiFYCmz/gtAN0KQqMZnmgFoOkz6QELQCsAjWY4ohWAps90WgDaBaTRDEe0AtD0mTRtAWg0wxqtADR9Jj1QB6AtAI1mOKIVgKbPnD1jFP/32ZnMHJORaFE0Gk0f0La7ps+kpli4acnkRIuh0Wj6iLYANBqNZoSiFYBGo9GMULQC0Gg0mhFKrwpARKaLyKagV4OIfCNkzZkiUh+05u6gfeeJyC4RKRWROwbiIjQajUYTO70GgZVSu4ATAETEDFQCz4dZ+o5S6nPBG4z1j+CbJlYBfCQiLyqldvRXcI1Go9H0j1hdQGcDnyql9ke5/iSgVClVppRqB54FLo7xMzUajUYzAMSaBnoVkQfDnywim4GDwLeUUtuBAuBA0JoKYFHMUkbLS3fA4a0DdnqNRqMZUMbMhfN/NmgfF7UFICI24CLg72F2bwQmKqXmAb8BXohVEBFZJiIlIlJSVVUV6+EajUajiZFYLIDzgY1KqSOhO5RSDUHv14jIoyKShy9eMD5oaaGxrRtKqZXASoDi4mIVg1xBEg6e5tRoNJrhTiwxgKuJ4P4RkTEiIsb7k4zz1gAfAceJSJFhQVwFvNg/kTUajUYTD6KyAEQkFV8mz38HbVsOoJRaAVwOfEVE3IALuEoppQC3iNwGvAKYgSeN2IBGo9FoEoz47tNDi+LiYlVSUpJoMTQajWbYICIblFLFsRyjK4E1Go1mhKIVgEaj0YxQtALQaDSaEYpWABqNRjNC0QpAo9FoRihDMgtIRKqAaPsN9UYeUB2ncw0GWt6BZ7jJrOUdWJJF3olKqfxYTjQkFUA8EZGSWFOjEomWd+AZbjJreQeWkSyvdgFpNBrNCEUrAI1GoxmhjAQFsDLRAsSIlnfgGW4ya3kHlhErb9LHADQajUYTnpFgAWg0Go0mDMNSAYjIkyJyVES2BW2bJyIfiMhWEfmXiGQY2yeJiCtoYP2KoGNONNaXishD/pbWiZTX2He8sW+7sd8+VOUVkWuDvttNIuIVEf8M6aEor1VE/mBs3ykidwYdc56I7DLkvWMgZO2DvDYR+b2xfbOInBl0zGB9v+NF5C0R2WH8Tn7d2J4jIq+JyB7j32xjuxjylIrIFhFZEHSu6431e0Tk+iEi7wzju28TkW+FnGvAfyf6IO+1xve6VUTeF5F5fZZXKTXsXsDpwAJgW9C2j4AzjPf/BfzQeD8peF3IeT4EFgMCvAScPwTktQBbgHnGz7mAeajKG3LcXHwzo4fy93sN8Kzx3gnsM35HzMCnwGTABmwGZg0BeW8Ffm+8HwVsAEyD/P2OBRYY79OB3cAs4H7gDmP7HcB9xvsLDHnEkG+9sT0HKDP+zTbeZw8BeUcBC4Ef4xtn6z/PoPxO9EHeU/zfG75BXev7Km/cf1kG60XIjR2opzOmMR7YEW5dyJf+SdDPVwOPDwF5LwCeHi7yhhzzE+DHQ1leQ45/4VO0ucYfWw5wMvBK0PF3AncOAXkfAb4YtO4N4KTB/n5DZP8nvvkgu4CxQf/fu4z3jwNXB63fZezvImPoukTJG7Tu+3RVAIP6OxGrvMb2bKCyr/IOSxdQBLYDFxvvr6DrKMoiEflYRP4jIkuMbQX4htT7qTC2DRaR5J0GKBF5RUQ2isj/GtuHqrzBXEnn1LihKu9zQDNwCCgHHlBKHTNkOxB0/FCRdzNwkYhYRKQIONHYl5DvV0QmAfOB9cBopdQhY9dhYLTxPtJ3OejfcZTyRmI4yHsjPmsL+iBvMimA/wJuEZEN+MyodmP7IWCCUmo+8E3gLxLkb08gkeS1AKcB1xr/fl5Ezk6MiF2IJC8AIrII+P/tnb9rFEEUxz9ffxUmCCqKsRATiJ1WQVIIRsEUipUgIhJR/wAVEQv9A8RCLCxSRCtFQUyRQhQsRDBYRAkaTIjGQghiUNQUQkjkWbxZ3EiuuNPcrdn3gePmZmdnvzc3e2/mvbmbH2Y2stDJDaCS3p3AT2Az0Aqck9TWGInzqKT3Jn4jDwHXgEFcf92R1AzcB85Ybh9wAPMhZ6GWFC51vZL24AbgQq3XrGZT+EJjZmNAN4CkbcCBlD8DzKT0C0kT+Ch7Et+kPqPihvX11Ivf7E/N7HM69gD3F98qqN6MI8zfM7qo7XsUeGhms8CUpGdABz5yys9qCqHXzOaAs1k5SYO42+ordWxfSSvxL6fbZtafsj9JajGzj5JagKmUP8nCbTkJdP2R/6QAeitR6X38c6rVK2kH0IfHfb7UqnfJzAAkbUzPy4BLQG96vUHS8pRuA9qB92lqNS2pM62e6MF9bw3Vi++fvF3SakkrgN24P7ioerO8w8DdLK/Aej8Ae9OxJjxIOYYHYdsltUpahRu0gUbrTf2gKaX3AXNmVtf+kOq/AYya2dXcoQEgW8lzPHf9AaBHTifwPel9BHRLWptWtHSnvEbrrURd+kS1eiVtAfrx2ND4X+ld7IDGIgVJ7uCunVl8xHwKOI2PjMaBy/wOqB3C/avDwEvgYK6eDmAEj5xfz85ppN5U/ljSPAJc+Q/0dgHPF6incHqBZuBeat83wPlcPftT+QngYkH671Y8GDgKPMb/8bHe7bsLdz+8SvfRcGqr9XhQ+m3Sti6VFx68ngBeAx25uk4C79LjREH0bkqfwzTwLaXX1KtP1KC3D58BZmWHau3D8UvgIAiCkrJkXEBBEARBdYQBCIIgKClhAIIgCEpKGIAgCIKSEgYgCIKgpIQBCIIgKClhAIIgCEpKGIAgCIKS8guYwRiKRIiI4gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x[-70:], y2[-70:], label='realistic')\n",
    "plt.plot(x[-70:], np.full(70, 7.5), label='7.5')\n",
    "plt.plot(x[-70:], np.full(70, 8.5), label='8.5')\n",
    "plt.plot(x[-70:], np.full(70, 9.5), label='9.5')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 结论：\n",
    "从上图可以看出<br>\n",
    "（1）2000年之前出版的书籍评分相对较高一点。可能是因为2000年后书籍泛滥，导致书籍内容的质量不高，所以评分相对要低一些；<br>\n",
    "（2）从1980年开始，后期的书籍评分几乎一直在降低，可能是书籍内容质量降低导致；<br>\n",
    "（3）大概从2015年开始，书籍的评分有所上升，可能是电子书籍增多，纸质书更加注重内容的质量了，所以评分有所提高。<br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5. 书籍的价格⼀般都是在什么范围"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002.4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998-01-01</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007-4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000-1</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                  2002.4   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                    2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社              1998-01-01   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                  2007-4   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                        2000-1   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（1）对价格这一列的数据进行清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "data3 = data.copy()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "先取出价格为空的数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data3['price'].isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "11079"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(data3['price']=='').sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "213556"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data3 = data3[(data3['price']!='')]\n",
    "len(data3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002.4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998-01-01</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007-4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000-1</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                  2002.4   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                    2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社              1998-01-01   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                  2007-4   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                        2000-1   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data3.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "去除掉价格列表示不规范导致无法处理的数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "213433"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "i = 0\n",
    "new_data3 = []\n",
    "for price in data3['price']:\n",
    "    price = str(price)\n",
    "    if re.match(r'.*?[0-9]+\\.{0,1}[0-9]*.*?', price) != None:\n",
    "        new_data3.append(data3.iloc[i])\n",
    "#     else:\n",
    "#         print(price)\n",
    "    i += 1\n",
    "len(new_data3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "213433"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data3 = pd.DataFrame(new_data3)\n",
    "len(new_data3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（2）统一价格这一列的格式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "213433"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 下面这一段代码获取书的年份并转为4位数字字符替换原来不同规则的年份，方便后面统计分析\n",
    "new_prices = []\n",
    "for price in new_data3.price:\n",
    "    pricestr = str(price)\n",
    "    pricestr = re.search(r'^.*?([0-9]+\\.{0,1}[0-9]*).*$', pricestr).group(1)\n",
    "    try:\n",
    "        pricestr = float(pricestr)\n",
    "    except:\n",
    "        print(pricestr)\n",
    "    new_prices.append(pricestr)\n",
    "len(new_prices)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "new_data3['price'] = new_prices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>224629</th>\n",
       "      <td>419806</td>\n",
       "      <td>1926747</td>\n",
       "      <td>德语速成</td>\n",
       "      <td>翟永庚</td>\n",
       "      <td>译林出版社</td>\n",
       "      <td></td>\n",
       "      <td>2006-11</td>\n",
       "      <td></td>\n",
       "      <td>简裝本</td>\n",
       "      <td>9787806577660</td>\n",
       "      <td>612</td>\n",
       "      <td>36.0</td>\n",
       "      <td>None</td>\n",
       "      <td>24</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224630</th>\n",
       "      <td>419807</td>\n",
       "      <td>3869737</td>\n",
       "      <td>瑞典语三百句</td>\n",
       "      <td>王梦达|（瑞）Lars|Bergman</td>\n",
       "      <td>北京大学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2009-6-1</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787301152140</td>\n",
       "      <td>250 页</td>\n",
       "      <td>25.0</td>\n",
       "      <td>None</td>\n",
       "      <td>24</td>\n",
       "      <td>8.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224631</th>\n",
       "      <td>419810</td>\n",
       "      <td>4250737</td>\n",
       "      <td>大爭之世 卷四：大盜本色</td>\n",
       "      <td></td>\n",
       "      <td>高寶</td>\n",
       "      <td></td>\n",
       "      <td>2010年01月20日</td>\n",
       "      <td></td>\n",
       "      <td>平裝</td>\n",
       "      <td>9789861854120</td>\n",
       "      <td>304</td>\n",
       "      <td>260.0</td>\n",
       "      <td>大爭之世</td>\n",
       "      <td>55</td>\n",
       "      <td>7.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224632</th>\n",
       "      <td>419814</td>\n",
       "      <td>11534920</td>\n",
       "      <td>三国机密（下）</td>\n",
       "      <td>马伯庸</td>\n",
       "      <td>江苏人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2012-8</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787214086341</td>\n",
       "      <td>367</td>\n",
       "      <td>36.0</td>\n",
       "      <td>三国机密</td>\n",
       "      <td>3585</td>\n",
       "      <td>7.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224634</th>\n",
       "      <td>419816</td>\n",
       "      <td>25734399</td>\n",
       "      <td>锦衣夜行5·逍遥游</td>\n",
       "      <td>月关</td>\n",
       "      <td>湖北少年儿童出版社</td>\n",
       "      <td></td>\n",
       "      <td>2013-7</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787535390264</td>\n",
       "      <td>289</td>\n",
       "      <td>25.0</td>\n",
       "      <td>锦衣夜行</td>\n",
       "      <td>38</td>\n",
       "      <td>7.9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            id       nid         title               author  publisher  \\\n",
       "224629  419806   1926747          德语速成                  翟永庚      译林出版社   \n",
       "224630  419807   3869737        瑞典语三百句  王梦达|（瑞）Lars|Bergman    北京大学出版社   \n",
       "224631  419810   4250737  大爭之世 卷四：大盜本色                              高寶   \n",
       "224632  419814  11534920       三国机密（下）                  马伯庸    江苏人民出版社   \n",
       "224634  419816  25734399     锦衣夜行5·逍遥游                   月关  湖北少年儿童出版社   \n",
       "\n",
       "       translators  publication originalname framed           isbn pagenumber  \\\n",
       "224629                  2006-11                 简裝本  9787806577660        612   \n",
       "224630                 2009-6-1                  平装  9787301152140      250 页   \n",
       "224631              2010年01月20日                  平裝  9789861854120        304   \n",
       "224632                   2012-8                  平装  9787214086341        367   \n",
       "224634                   2013-7                  平装  9787535390264        289   \n",
       "\n",
       "        price books numberofreviews score  \n",
       "224629   36.0  None              24   8.0  \n",
       "224630   25.0  None              24   8.2  \n",
       "224631  260.0  大爭之世              55   7.3  \n",
       "224632   36.0  三国机密            3585   7.9  \n",
       "224634   25.0  锦衣夜行              38   7.9  "
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data3.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（3）对价格数据异常值进行判断和处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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tZWJiYksLCwkif+VCMA5yf9JBIARmp6ezk033ZS77rorm5ubmZqa6j9/8YtfHPd4AFxATvf/JLqSCAAj9Mgjj+R73/veD1xJ/OpXvzru0QBgRyIRAEZoz549+bEf+7HccMMNOXz4cC666KLMzMzkiSeeGPdoALAjG9cAwAgdPnw4n/70p/POd74zf/RHf5R3vvOd+fSnP53Dhw+PezQA2JFIBIARqqrs27cvDzzwQG688cY88MAD2bdvX6pq3KMBwI5EIgCMUGstDz/8cA4dOpQkOXToUB5++OFcKBvHAXD+EYkAMEKTk5N59tlnk6SH4bPPPpvJSdsCAHBuEokAMEKXXHJJDh06lO9///tpreX73/9+Dh06lEsuuWTcowHAjkQiAIzQ008/nT179uTJJ59Mkjz55JPZs2dPnn766TFPBgA7c68LAIzQxMRELr744txzzz39/yS+7W1vy9bW1rhHA4AduZIIACN05MiR7Nmz57i1PXv25MiRI2OaCABOzpVEABixa6+9NjfccEMOHz6ciy66KG9+85tz9913j3ssANiRSASAEbr88svzyU9+Mr/5m7+Zq6++Oo888kh+7dd+LZdffvm4RwOAHYlEABihl7/85dna2sqHPvShHDx4MK9//evzile8Ii9/+cvHPRoA7MhnEgFghJ544olcc801OXjwYFprOXjwYK655po88cQT4x4NAHYkEgFghC699NLcf//9edWrXpWqyqte9arcf//9ufTSS8c9GgDsSCQCwAh9+9vfTmst3/zmN4/7/u1vf3vcowHAjkQiAIzQ3/zN3yRJ/7+Ix74fWweAc41IBICz4NWvfnVe8pKX5NWvfvW4RwGAkxKJAHAWvPWtb80nPvGJvPWtbx33KABwUtVaG/cMZ8XMzEzb2NgY9xgAXGCqKi95yUuOu7302M8Xyt9gAM4NVfVQa23mVMe5kggAI/bczx/6PCIA5zKRCAAAQCcSAQAA6EQiAAAAnUgEAACgE4kAAAB0IhEAAIBOJAIAANCJRAAAADqRCAAAQCcSAQAA6M7rSKyq66vqy1X1aFW9d9zzAAAAnO/O20isqokkv53khiRXJ9lfVVePdyoAAIDz23kbiUmuTfJoa+0vWmt/leRjSW4c80wAAADntfM5El+b5Gvbfn5sWAMAAOAMTY57gFGqqluS3JIke/fuzdra2ngHAiAHDh4Y9whn1fRHpk/43E/e+ZNncZLx+tDrPzTuEQA4TedzJD6e5HXbfr5iWOtaa7cnuT1JZmZm2tzc3FkbDoCdfSFfGPcIZ1VVnfC51tpZnAQATs/5fLvpg0muqqo3VNWeJG9PcveYZwIAADivnbdXEltrR6rqV5Lcm2QiyR2ttS+NeSwAOE5rbceria4iAnCuOp+vJKa19qnW2o+31v5Oa21p3PMAwE5aa2mtZXV1tT8GgHPVeR2JAAAAvLBEIgAAAJ1IBAAAoBOJAAAAdCIRAACATiQCAADQiUQAAAA6kQgAAEAnEgEAAOhEIgAAAJ1IBAAAoBOJAAAAdCIRAACATiQCAADQiUQAAAA6kQgAAEAnEgEAAOiqtTbuGc6Kqvq/SQ6Oew4ALmivTPLNcQ8BwAXr9a21Hz3VQRdMJALAuFXVRmttZtxzAMDJuN0UAACATiQCAADQiUQAOHtuH/cAAHAqPpMIAABA50oiAAAAnUgEgBGrqvdX1c+Pew4AOB1uNwWAEaqqidba1rjnAIDT5UoiAJyhqrqyqv68qn6vqjar6g+q6uVV9dWquq2q/izJP66qj1TV24bXXFNVn6mqh6vqT6vqh6tqoqr+XVU9WFWfr6pfGvOvBsAFTCQCwO78RJLfaa1NJflukncP699qrb2xtfaxYwdW1Z4kv5/kV1trP5Xk55N8P8lCku+01q5Jck2Sd1XVG87mLwEAx4hEANidr7XWPj08/i9JZofHv7/DsT+R5OuttQeTpLX23dbakSTXJXlHVX0uyZ8k+ZEkV412bADY2eS4BwCA89xzP9x/7OdDz+M9KsmB1tq9L8xIAHDmXEkEgN3521X1D4bH/zTJ+kmO/XKS11TVNUkyfB5xMsm9Sf55Vb10WP/xqrp4lEMDwImIRADYnS8neU9VbSa5LMmHT3Rga+2vkvyTJB+qqoeT3JfkZUn+U5JHkvxZVX0xye/G3T4AjIl/gQEAZ6iqrkzyx6216TGPAgAvGFcSAQAA6FxJBAAAoHMlEQAAgE4kAgAA0IlEAAAAOpEIAABAJxIBAADoRCIAAADd/wc9Lj6Myyt9TQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1080x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15,9))\n",
    "new_data3[['price']].boxplot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "prices = new_data3['price']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "60.0"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q_upper = prices.quantile(0.75)\n",
    "q_upper"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "22.0"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q_lower = prices.quantile(0.25)\n",
    "q_lower"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "38.0"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "val = q_upper - q_lower\n",
    "val"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "k = 1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "182138"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_data3 = new_data3[(new_data3['price'] < q_upper + k * val) & (new_data3['price'] > q_lower - k * val )]\n",
    "len(new_data3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "prices = new_data3['price']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([16706., 39913., 57503., 27461., 15836.,  9464.,  4798.,  4312.,\n",
       "         4627.,  1518.]),\n",
       " array([  0.   ,  11.695,  23.39 ,  35.085,  46.78 ,  58.475,  70.17 ,\n",
       "         81.865,  93.56 , 105.255, 116.95 ]),\n",
       " <a list of 10 Patch objects>)"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(prices, color='c', rwidth=0.8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "12"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import math\n",
    "bins = math.ceil((prices.max() - prices.min())/10)\n",
    "bins"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAD8CAYAAACcjGjIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAEkFJREFUeJzt3W+MXXed3/H3Z22SzbIFJ8S1UjuqXWF1ZaICYRS8YlW5SZs4WYTzgKIg1LjUwg8IKluttE3Kg2hhtwK12uymglQRceMgikmz0FgobNY1iVZ9kJDJQvOXNLMBGlsJnsX5s1tU2LDfPrg/t3f9m/Fcj8e+c2feL+nqnvM9v3Pu76czup97/tw7qSokSRr2C+PugCRp+TEcJEkdw0GS1DEcJEkdw0GS1DEcJEkdw0GS1DEcJEkdw0GS1Fk77g4s1sUXX1ybN28edzckaWI8/vjjf15V60dpO7HhsHnzZqanp8fdDUmaGEl+OGpbTytJkjqGgySpYzhIkjqGgySpYzhIkjqGgySpYzhIkjqGgySpYzhIkjoT+w1pDeThh5d8m7Vjx5JvU9Jk8chBktQxHCRJHcNBktQxHCRJHcNBktQZKRyS/CDJk0m+m2S61S5KcijJ8+35wlZPktuTzCR5IsnlQ9vZ3do/n2T3UP09bfszbd0s9UAlSaM7nSOHf1RV76qqqTZ/M3C4qrYCh9s8wLXA1vbYC9wBgzABbgXeC1wB3HoiUFqbjw2tt3PRI5IknbEzOa20C9jfpvcD1w/V76mBR4B1SS4BrgEOVdXxqnoFOATsbMveUlWPVFUB9wxtS5I0BqOGQwF/nOTxJHtbbUNVvdSmXwY2tOmNwItD6x5ptVPVj8xR7yTZm2Q6yfTs7OyIXZckna5RvyH9a1V1NMnfBg4l+d7wwqqqJLX03fubqupO4E6Aqamps/56krRajXTkUFVH2/Mx4OsMrhn8qJ0Soj0fa82PApcOrb6p1U5V3zRHXZI0JguGQ5I3J/lbJ6aBq4GngIPAiTuOdgP3t+mDwI3trqXtwGvt9NODwNVJLmwXoq8GHmzLXk+yvd2ldOPQtiRJYzDKaaUNwNfb3aVrgf9cVX+U5DHg3iR7gB8CH2rtHwCuA2aAnwAfBaiq40k+AzzW2n26qo636Y8DdwMXAN9sD0nSmCwYDlX1AvDOOeo/Bq6ao17ATfNsax+wb476NHDZCP2VJJ0DfkNaktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJnZHDIcmaJN9J8o02vyXJo0lmknw1yXmtfn6bn2nLNw9t45ZWfy7JNUP1na02k+TmpRueJGkxTufI4ZPAs0PznwNuq6q3A68Ae1p9D/BKq9/W2pFkG3AD8A5gJ/CFFjhrgM8D1wLbgA+3tpKkMRkpHJJsAn4d+GKbD3AlcF9rsh+4vk3vavO05Ve19ruAA1X106r6PjADXNEeM1X1QlX9DDjQ2kqSxmTUI4ffB34L+Os2/zbg1ap6o80fATa26Y3AiwBt+Wut/f+rn7TOfHVJ0pgsGA5J3g8cq6rHz0F/FurL3iTTSaZnZ2fH3R1JWrFGOXJ4H/CBJD9gcMrnSuAPgHVJ1rY2m4CjbfoocClAW/5W4MfD9ZPWma/eqao7q2qqqqbWr18/QtclSYuxYDhU1S1VtamqNjO4oPytqvoI8BDwwdZsN3B/mz7Y5mnLv1VV1eo3tLuZtgBbgW8DjwFb291P57XXOLgko5MkLcrahZvM618DB5L8DvAd4K5Wvwv4UpIZ4DiDN3uq6ukk9wLPAG8AN1XVzwGSfAJ4EFgD7Kuqp8+gX5KkM5TBh/rJMzU1VdPT0+Puxtjl4YeXfJu1Y8eSb1PS+CV5vKqmRmnrN6QlSR3DQZLUMRwkSR3DQZLUMRwkSZ0zuZVVq4h3RUmri0cOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqSO4SBJ6hgOkqTOguGQ5BeTfDvJ/0jydJLfbvUtSR5NMpPkq0nOa/Xz2/xMW755aFu3tPpzSa4Zqu9stZkkNy/9MCVJp2OUI4efAldW1TuBdwE7k2wHPgfcVlVvB14B9rT2e4BXWv221o4k24AbgHcAO4EvJFmTZA3weeBaYBvw4dZWkjQmC4ZDDfxlm31TexRwJXBfq+8Hrm/Tu9o8bflVSdLqB6rqp1X1fWAGuKI9Zqrqhar6GXCgtZUkjclI1xzaJ/zvAseAQ8CfAa9W1RutyRFgY5veCLwI0Ja/BrxtuH7SOvPV5+rH3iTTSaZnZ2dH6bokaRFGCoeq+nlVvQvYxOCT/q+c1V7N3487q2qqqqbWr18/ji5I0qpwWncrVdWrwEPArwLrkqxtizYBR9v0UeBSgLb8rcCPh+snrTNfXZI0JqPcrbQ+ybo2fQHwT4BnGYTEB1uz3cD9bfpgm6ct/1ZVVavf0O5m2gJsBb4NPAZsbXc/ncfgovXBpRicJGlx1i7chEuA/e2uol8A7q2qbyR5BjiQ5HeA7wB3tfZ3AV9KMgMcZ/BmT1U9neRe4BngDeCmqvo5QJJPAA8Ca4B9VfX0ko1QknTaFgyHqnoCePcc9RcYXH84uf5/gH86z7Z+F/jdOeoPAA+M0F9J0jkwypGDFikPP7yk26sdO5Z0e5I0H38+Q5LUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUMRwkSR3DQZLUWTAcklya5KEkzyR5OsknW/2iJIeSPN+eL2z1JLk9yUySJ5JcPrSt3a3980l2D9Xfk+TJts7tSXI2BitJGs0oRw5vAL9ZVduA7cBNSbYBNwOHq2orcLjNA1wLbG2PvcAdMAgT4FbgvcAVwK0nAqW1+djQejvPfGiSpMVaMByq6qWq+tM2/RfAs8BGYBewvzXbD1zfpncB99TAI8C6JJcA1wCHqup4Vb0CHAJ2tmVvqapHqqqAe4a2JUkag9O65pBkM/Bu4FFgQ1W91Ba9DGxo0xuBF4dWO9Jqp6ofmaMuSRqTkcMhyS8Dfwj8RlW9PrysfeKvJe7bXH3Ym2Q6yfTs7OzZfjlJWrVGCockb2IQDF+uqq+18o/aKSHa87FWPwpcOrT6plY7VX3THPVOVd1ZVVNVNbV+/fpRui5JWoRR7lYKcBfwbFX93tCig8CJO452A/cP1W9sdy1tB15rp58eBK5OcmG7EH018GBb9nqS7e21bhzaliRpDNaO0OZ9wD8Dnkzy3Vb7N8BngXuT7AF+CHyoLXsAuA6YAX4CfBSgqo4n+QzwWGv36ao63qY/DtwNXAB8sz0kSWOyYDhU1X8H5vvewVVztC/gpnm2tQ/YN0d9Grhsob5Iks4NvyEtSeoYDpKkjuEgSeqMckFaOmfy8MNLvs3asWPJtymtdB45SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6hoMkqWM4SJI6q/L/OSz1/wzw/wVIWmk8cpAkdQwHSVLHcJAkdQwHSVLHcJAkdQwHSVLHcJAkdQwHSVLHcJAkdQwHSVLHcJAkdRYMhyT7khxL8tRQ7aIkh5I8354vbPUkuT3JTJInklw+tM7u1v75JLuH6u9J8mRb5/YkWepBSpJOzyhHDncDO0+q3QwcrqqtwOE2D3AtsLU99gJ3wCBMgFuB9wJXALeeCJTW5mND6538WpKkc2zBcKiqPwGOn1TeBexv0/uB64fq99TAI8C6JJcA1wCHqup4Vb0CHAJ2tmVvqapHqqqAe4a2JUkak8Vec9hQVS+16ZeBDW16I/DiULsjrXaq+pE56nNKsjfJdJLp2dnZRXZdkrSQM74g3T7x1xL0ZZTXurOqpqpqav369efiJSVpVVpsOPyonRKiPR9r9aPApUPtNrXaqeqb5qhLksZosf8J7iCwG/hse75/qP6JJAcYXHx+rapeSvIg8G+HLkJfDdxSVceTvJ5kO/AocCPwHxbZJ2lk/jdA6dQWDIckXwF2ABcnOcLgrqPPAvcm2QP8EPhQa/4AcB0wA/wE+ChAC4HPAI+1dp+uqhMXuT/O4I6oC4BvtockaYwWDIeq+vA8i66ao20BN82znX3Avjnq08BlC/VDknTu+A1pSVLHcJAkdQwHSVLHcJAkdQwHSVLHcJAkdRb7JThJI/DLdppUHjlIkjqGgySpYzhIkjqGgySpYzhIkjqGgySpYzhIkjqGgySpYzhIkjqGgySp489nSBrJUv8UCMz9cyDn6nV0aoaDNOF8M9XZ4GklSVLHcJAkdQwHSVLHcJAkdQwHSVLHcJAkdQwHSVLHcJAkdfwSnKRVaam/PLjSvjjokYMkqeORgySdRZN6hLJsjhyS7EzyXJKZJDePuz+StJoti3BIsgb4PHAtsA34cJJt4+2VJK1eyyIcgCuAmap6oap+BhwAdo25T5K0ai2XcNgIvDg0f6TVJEljMFEXpJPsBfa22b9M8txprH4x8OdL3yvI2djowq+zksZz1sZy0uucNSt438DKGs9KGguc/nj+7qgNl0s4HAUuHZrf1Gp/Q1XdCdy5mBdIMl1VU4vr3vKzksazksYCjmc5W0ljgbM7nuVyWukxYGuSLUnOA24ADo65T5K0ai2LI4eqeiPJJ4AHgTXAvqp6eszdkqRVa1mEA0BVPQA8cBZfYlGno5axlTSelTQWcDzL2UoaC5zF8aSqzta2JUkTarlcc5AkLSOrIhwm+ac5klya5KEkzyR5OsknW/2iJIeSPN+eLxx3X09HkjVJvpPkG21+S5JH2z76arsxYdlLsi7JfUm+l+TZJL86yfsmyb9qf2dPJflKkl+cpH2TZF+SY0meGqrNuT8ycHsb1xNJLh9fz3vzjOXftb+1J5J8Pcm6oWW3tLE8l+SaM339FR8OK+CnOd4AfrOqtgHbgZta/28GDlfVVuBwm58knwSeHZr/HHBbVb0deAXYM5Zenb4/AP6oqn4FeCeDMU3kvkmyEfiXwFRVXcbg5pAbmKx9czew86TafPvjWmBre+wF7jhHfRzV3fRjOQRcVlX/APifwC0A7T3hBuAdbZ0vtPe+RVvx4cCE/zRHVb1UVX/apv+CwZvPRgZj2N+a7QeuH08PT1+STcCvA19s8wGuBO5rTSZiPEneCvxD4C6AqvpZVb3KBO8bBjepXJBkLfBLwEtM0L6pqj8Bjp9Unm9/7ALuqYFHgHVJLjk3PV3YXGOpqj+uqjfa7CMMvhMGg7EcqKqfVtX3gRkG732LthrCYcX8NEeSzcC7gUeBDVX1Ulv0MrBhTN1ajN8Hfgv46zb/NuDVoT/6SdlHW4BZ4D+1U2RfTPJmJnTfVNVR4N8D/4tBKLwGPM5k7pth8+2PSX9v+BfAN9v0ko9lNYTDipDkl4E/BH6jql4fXlaDW84m4razJO8HjlXV4+PuyxJYC1wO3FFV7wb+NyedQpqwfXMhg0+gW4C/A7yZ/rTGRJuk/XEqST7F4JTzl8/Wa6yGcBjppzmWsyRvYhAMX66qr7Xyj04cArfnY+Pq32l6H/CBJD9gcIrvSgbn7de1UxkwOfvoCHCkqh5t8/cxCItJ3Tf/GPh+Vc1W1V8BX2OwvyZx3wybb39M5HtDkn8OvB/4SP3/7yIs+VhWQzhM9E9ztPPxdwHPVtXvDS06COxu07uB+8913xajqm6pqk1VtZnBvvhWVX0EeAj4YGs2EeOpqpeBF5P8/Va6CniGCd03DE4nbU/yS+3v7sR4Jm7fnGS+/XEQuLHdtbQdeG3o9NOylGQng1OyH6iqnwwtOgjckOT8JFsYXGT/9hm9WFWt+AdwHYMr+38GfGrc/TnNvv8ag8PgJ4Dvtsd1DM7THwaeB/4bcNG4+7qIse0AvtGm/177Y54B/gtw/rj7N+IY3gVMt/3zX4ELJ3nfAL8NfA94CvgScP4k7RvgKwyul/wVgyO7PfPtDwY/cPr59r7wJIO7tMY+hgXGMsPg2sKJ94L/ONT+U20szwHXnunr+w1pSVJnNZxWkiSdJsNBktQxHCRJHcNBktQxHCRJHcNBktQxHCRJHcNBktT5v5Q+JFygEt/GAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "res = plt.hist(prices, color='c', rwidth=0.8, range=(0, 10*bins), bins=bins)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([13971., 28549., 52399., 37361., 17833.,  9392.,  6999.,  4097.,\n",
       "         4339.,  4267.,  1825.,  1106.]),\n",
       " array([  0.,  10.,  20.,  30.,  40.,  50.,  60.,  70.,  80.,  90., 100.,\n",
       "        110., 120.]),\n",
       " <a list of 12 Patch objects>)"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 结论：从上面的图和数据可知：大部分书的价格在0-60之间，其中20-30最多。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 6、出版的书籍最多的前20个出版社"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "data4 = data.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002.4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998-01-01</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007-4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000-1</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                  2002.4   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                    2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社              1998-01-01   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                  2007-4   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                        2000-1   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data4.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data4['publisher'].isnull().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "16593"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(data4['publisher'] == '').sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "208042"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data4 = data4[data4['publisher'] != '']\n",
    "len(data4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "publisher_num = data4.drop_duplicates(['publisher'])    # 筛选出版社不重复的一组数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>224578</th>\n",
       "      <td>419611</td>\n",
       "      <td>1904607</td>\n",
       "      <td>匿龙密语 1</td>\n",
       "      <td>小云</td>\n",
       "      <td>冬日社</td>\n",
       "      <td></td>\n",
       "      <td>2005</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9789889940003</td>\n",
       "      <td></td>\n",
       "      <td>HK 30</td>\n",
       "      <td>None</td>\n",
       "      <td>59</td>\n",
       "      <td>9.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224598</th>\n",
       "      <td>419663</td>\n",
       "      <td>3890046</td>\n",
       "      <td>水神的新娘 1</td>\n",
       "      <td>尹美庚|윤미경</td>\n",
       "      <td>서울 문화사</td>\n",
       "      <td></td>\n",
       "      <td>2006-6-2</td>\n",
       "      <td>하백의 신부 1</td>\n",
       "      <td></td>\n",
       "      <td>9788953272491</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "      <td>165</td>\n",
       "      <td>7.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224606</th>\n",
       "      <td>419686</td>\n",
       "      <td>21319773</td>\n",
       "      <td>禁じられた戯び</td>\n",
       "      <td>山藍紫姫子|蘭丸</td>\n",
       "      <td>花丸文庫black</td>\n",
       "      <td></td>\n",
       "      <td>2013-3</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9784592851011</td>\n",
       "      <td></td>\n",
       "      <td>690</td>\n",
       "      <td>None</td>\n",
       "      <td>39</td>\n",
       "      <td>8.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224617</th>\n",
       "      <td>419743</td>\n",
       "      <td>2075618</td>\n",
       "      <td>身體·性別·階級</td>\n",
       "      <td>劉苑如</td>\n",
       "      <td>中國文哲研究所</td>\n",
       "      <td></td>\n",
       "      <td>2002-12-31</td>\n",
       "      <td></td>\n",
       "      <td>25開  1冊</td>\n",
       "      <td>9789576719288</td>\n",
       "      <td>241</td>\n",
       "      <td>NT$320元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>224627</th>\n",
       "      <td>419801</td>\n",
       "      <td>26919515</td>\n",
       "      <td>Rivstart A1+A2 Textbok</td>\n",
       "      <td>Paula Levy Scherrer|Karl Lindemalm</td>\n",
       "      <td>Natur&amp;Kultur</td>\n",
       "      <td></td>\n",
       "      <td>2014</td>\n",
       "      <td></td>\n",
       "      <td>Paperback</td>\n",
       "      <td>9789127434202</td>\n",
       "      <td>240</td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            id       nid                   title  \\\n",
       "224578  419611   1904607                  匿龙密语 1   \n",
       "224598  419663   3890046                 水神的新娘 1   \n",
       "224606  419686  21319773                 禁じられた戯び   \n",
       "224617  419743   2075618                身體·性別·階級   \n",
       "224627  419801  26919515  Rivstart A1+A2 Textbok   \n",
       "\n",
       "                                    author     publisher translators  \\\n",
       "224578                                  小云           冬日社               \n",
       "224598                             尹美庚|윤미경        서울 문화사               \n",
       "224606                            山藍紫姫子|蘭丸     花丸文庫black               \n",
       "224617                                 劉苑如       中國文哲研究所               \n",
       "224627  Paula Levy Scherrer|Karl Lindemalm  Natur&Kultur               \n",
       "\n",
       "       publication originalname     framed           isbn pagenumber    price  \\\n",
       "224578        2005                          9789889940003               HK 30   \n",
       "224598    2006-6-2     하백의 신부 1             9788953272491                       \n",
       "224606      2013-3                          9784592851011                 690   \n",
       "224617  2002-12-31                 25開  1冊  9789576719288        241  NT$320元   \n",
       "224627        2014               Paperback  9789127434202        240            \n",
       "\n",
       "       books numberofreviews score  \n",
       "224578  None              59   9.4  \n",
       "224598  None             165   7.3  \n",
       "224606  None              39   8.6  \n",
       "224617  None                        \n",
       "224627  None                        "
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "publisher_num.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [],
   "source": [
    "publisher_num.index = np.arange(len(publisher_num)) # 重置目录"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>13538</th>\n",
       "      <td>419611</td>\n",
       "      <td>1904607</td>\n",
       "      <td>匿龙密语 1</td>\n",
       "      <td>小云</td>\n",
       "      <td>冬日社</td>\n",
       "      <td></td>\n",
       "      <td>2005</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9789889940003</td>\n",
       "      <td></td>\n",
       "      <td>HK 30</td>\n",
       "      <td>None</td>\n",
       "      <td>59</td>\n",
       "      <td>9.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13539</th>\n",
       "      <td>419663</td>\n",
       "      <td>3890046</td>\n",
       "      <td>水神的新娘 1</td>\n",
       "      <td>尹美庚|윤미경</td>\n",
       "      <td>서울 문화사</td>\n",
       "      <td></td>\n",
       "      <td>2006-6-2</td>\n",
       "      <td>하백의 신부 1</td>\n",
       "      <td></td>\n",
       "      <td>9788953272491</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "      <td>165</td>\n",
       "      <td>7.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13540</th>\n",
       "      <td>419686</td>\n",
       "      <td>21319773</td>\n",
       "      <td>禁じられた戯び</td>\n",
       "      <td>山藍紫姫子|蘭丸</td>\n",
       "      <td>花丸文庫black</td>\n",
       "      <td></td>\n",
       "      <td>2013-3</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9784592851011</td>\n",
       "      <td></td>\n",
       "      <td>690</td>\n",
       "      <td>None</td>\n",
       "      <td>39</td>\n",
       "      <td>8.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13541</th>\n",
       "      <td>419743</td>\n",
       "      <td>2075618</td>\n",
       "      <td>身體·性別·階級</td>\n",
       "      <td>劉苑如</td>\n",
       "      <td>中國文哲研究所</td>\n",
       "      <td></td>\n",
       "      <td>2002-12-31</td>\n",
       "      <td></td>\n",
       "      <td>25開  1冊</td>\n",
       "      <td>9789576719288</td>\n",
       "      <td>241</td>\n",
       "      <td>NT$320元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13542</th>\n",
       "      <td>419801</td>\n",
       "      <td>26919515</td>\n",
       "      <td>Rivstart A1+A2 Textbok</td>\n",
       "      <td>Paula Levy Scherrer|Karl Lindemalm</td>\n",
       "      <td>Natur&amp;Kultur</td>\n",
       "      <td></td>\n",
       "      <td>2014</td>\n",
       "      <td></td>\n",
       "      <td>Paperback</td>\n",
       "      <td>9789127434202</td>\n",
       "      <td>240</td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id       nid                   title  \\\n",
       "13538  419611   1904607                  匿龙密语 1   \n",
       "13539  419663   3890046                 水神的新娘 1   \n",
       "13540  419686  21319773                 禁じられた戯び   \n",
       "13541  419743   2075618                身體·性別·階級   \n",
       "13542  419801  26919515  Rivstart A1+A2 Textbok   \n",
       "\n",
       "                                   author     publisher translators  \\\n",
       "13538                                  小云           冬日社               \n",
       "13539                             尹美庚|윤미경        서울 문화사               \n",
       "13540                            山藍紫姫子|蘭丸     花丸文庫black               \n",
       "13541                                 劉苑如       中國文哲研究所               \n",
       "13542  Paula Levy Scherrer|Karl Lindemalm  Natur&Kultur               \n",
       "\n",
       "      publication originalname     framed           isbn pagenumber    price  \\\n",
       "13538        2005                          9789889940003               HK 30   \n",
       "13539    2006-6-2     하백의 신부 1             9788953272491                       \n",
       "13540      2013-3                          9784592851011                 690   \n",
       "13541  2002-12-31                 25開  1冊  9789576719288        241  NT$320元   \n",
       "13542        2014               Paperback  9789127434202        240            \n",
       "\n",
       "      books numberofreviews score  \n",
       "13538  None              59   9.4  \n",
       "13539  None             165   7.3  \n",
       "13540  None              39   8.6  \n",
       "13541  None                        \n",
       "13542  None                        "
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "publisher_num.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "publishers = publisher_num['publisher']    # 获取到所有出版社的一个列表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "pandas.core.series.Series"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(publishers)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'中国社会科学出版社'"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "publishers[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, ..., 0, 0, 0])"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num_of_publishers = np.zeros(len(publishers), dtype=int)\n",
    "num_of_publishers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 11min 4s, sys: 1.83 s, total: 11min 6s\n",
      "Wall time: 11min 10s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for one in data4['publisher']:\n",
    "    index = 0\n",
    "    for publisher in publishers:\n",
    "        if one == publisher:\n",
    "            num_of_publishers[index] += 1 \n",
    "        index += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1490, 3233, 1717, ...,    1,    1,    1])"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num_of_publishers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [],
   "source": [
    "nums = num_of_publishers.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1490, 3233, 1717, ...,    1,    1,    1])"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1490, 3233, 1717, 174, 736]"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list_nums = list(nums)   # 将nparray转为list，方便后面选取最大的20个数的索引下标\n",
    "list_nums[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "下面通过使用 heapq 找出最大的20个数的索引下标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [],
   "source": [
    "import heapq\n",
    "# 最大的20个数的索引\n",
    "max_num_index_list = map(list_nums.index, heapq.nlargest(20, list_nums))\n",
    "max_num_index_list = list(max_num_index_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 112, 22, 12, 81, 110, 1090, 36, 101, 19, 24, 203, 104, 38, 2, 51, 151, 56, 0, 141]\n"
     ]
    }
   ],
   "source": [
    "print(max_num_index_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，根据排序后前20的索引获取排前20的所有出版社"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['人民文学出版社', '北京大学出版社', '商务印书馆', '中华书局', '中信出版社', '上海译文出版社', '東立', '中国人民大学出版社', '上海人民出版社', '机械工业出版社', '广西师范大学出版社', '译林出版社', '人民邮电出版社', '生活·读书·新知三联书店', '上海古籍出版社', '新星出版社', '清华大学出版社', '电子工业出版社', '中国社会科学出版社', '社会科学文献出版社']\n"
     ]
    }
   ],
   "source": [
    "publishers_list =[]\n",
    "for i in max_num_index_list:\n",
    "    publishers_list.append(publishers[i])\n",
    "print(publishers_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "然后，根据排序后前20的索引获取排前20的所有出版社的出版书籍量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[3233, 3214, 2904, 2749, 2522, 2514, 2321, 2212, 2211, 2174, 1983, 1849, 1813, 1758, 1717, 1663, 1643, 1599, 1490, 1248]\n"
     ]
    }
   ],
   "source": [
    "publish_num_list =[]\n",
    "for i in max_num_index_list:\n",
    "    publish_num_list.append(num_of_publishers[i])\n",
    "print(publish_num_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "开始画图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/font_manager.py:1328: UserWarning: findfont: Font family ['HiraginoSansGB-W3', 'PingFangSC-Regular', 'Microsoft YaHei', 'SimHei'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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ctd7Pz+dvpLksSS3JHl583DL6fSV6eLnk1y7cPVrptnW23yk936s937s8OHDy8QDAAC4aOy73LXWLmutvXVzO8mHk/wmyakk904XuzfJD6ftU0k+Nf3UzNuS/H3h8E0AAACWsMxhmUeSPNZa27yd7/bez7TWnkry/dbap5M8l+Tj0+VPJ7krydkk/0xy3xL3DQAAwIJ9l7ve+7kk791m/tckH9pm3pN8fr/3BwAAwM5W8asQAAAAmJlyBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUIByBwAAUMDs5a61dkdr7dnW2tnW2oNz3z8AAEBFs5a71tolSb6e5M4kR5N8orV2dM4MAAAAFc39yd0tSc723s/13v+d5HtJ7p45AwAAQDlzl7urkzy/cP6FaQYAAMASWu99vjtr7WNJ7ui9f2Y6/8kkt/be71+4zPEkx6ez70ry7GwB53NlklfXHWIbo+ZKxs02aq5k3Gxy7d2o2UbNlYybbdRcybjZ5Nq7UbONmisZN9uouZJxs42aaxnv7L0f3s0FD606yRbnk1y7cP6aafaG3vsjSR6ZM9TcWmtP996PrTvHVqPmSsbNNmquZNxscu3dqNlGzZWMm23UXMm42eTau1GzjZorGTfbqLmScbONmmsucx+W+VSSG1tr17fWLk1yT5JTM2cAAAAoZ9ZP7nrvr7fW7k/yoySXJPlW7/23c2YAAACoaO7DMtN7P53k9Nz3O5hRDzsdNVcybrZRcyXjZpNr70bNNmquZNxso+ZKxs0m196Nmm3UXMm42UbNlYybbdRcs5j1B6oAAACwGnP/nzsAAABWQLkDAAAoQLkDAAAoYPYfqHKhaa2dSHJbkten0aEkT+4wy8zzd0+nzwyY7VCSJ3vvJ6bza1nLxfvfrVXm3GueEdZs8OfAytd1p9u+ENZlm/nmPuO/SS6ftl9LckWSvyX5w5qy3bRDBmuz9/nsa7nGfcbiY83C9uL3b/MfsRdfJ19K8p4kLy/E/k+Sryb5ytZ57/3uLY/vXJLfLYyO9t5vWGJ+05T5siQ/SfLBJC9Ms57kLUl+muTWJH/ZZj77Pnbdr02D73/X/d5sN8+Lcyteg/3uZ7PD9rD73/28z1w15W537um9v5YkrbXLkzyww2yny65q/lCS9N4fHDDb4nzda7kfq8w5UpbdZhz1OTDXuh7EbYwwf2ia/SvJyWn7gfKjeJ8AAAHASURBVCTfTnJf7/3EOrJNb9S2y3DRr80FtJZbrfy5sfhYp/nm9uL3783J/71Onkzypd77DzbDttY2r7PTfNGp3vsD21xmX/PpcZxMcmI6/3A2CubJ6XGeTHIiyZnpa+t8rr9jW637tWnU/e9a35vt8nlxcp1rkx32s1vyvrF9Aex/h+KwTAAAgAKUOwCgvNba6SRv3+d1v9ha+8gBRwI4cA7LBADK673fNR1KtZ/rfuGg8wCsgk/uAAAAClDuAAAAClDuAAAACmi993VnGFpr7XNJ7sjG7+RINgrxmR1mmXl+w3R6bsBsb0pypvf+jen8WtZy8f53a5U595pnhDUb/Dmw8nXd6bYvhHXZZr65z+hJrpq2X0lyJBs/ev1Pa8p2/Q4ZrM3e57Ov5Rr3GYuPNQvbi9+/Nm0vvk7+PsnNSf6xEPulJN9M8uWt8977Z7c8vp8leXVhdGXv/fYl5tdPmS/Nxu+te382fs/d5uO4NMnPkxydsm2dz76PXfdr0+D733W/N9vN8+K5Fa/Bfvez2WF72P3vft5nrppyBwAAUIDDMgEAAApQ7gAAAApQ7gAAAApQ7gAAAApQ7gAAAAr4H1DqShPHc5vVAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1080x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plt.rc('font', **{'family' : 'HiraginoSansGB-W3, PingFangSC-Regular, Microsoft YaHei, SimHe'})\n",
    "plt.figure(figsize=(15, 9))\n",
    "plt.bar(publishers_list, publish_num_list, facecolor='#9999ff', edgecolor='white')\n",
    "for x, y in zip(publishers_list, publish_num_list):\n",
    "    # ha: horizontal alignment\n",
    "    # va: vertical alignment\n",
    "    plt.text(x, y, '%d' % y, ha='center', va='bottom')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由于Mac系统的原因，设置后也不能正常显示中文，所以下面我将20个出版社依次排出👇"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['人民文学出版社',\n",
       " '北京大学出版社',\n",
       " '商务印书馆',\n",
       " '中华书局',\n",
       " '中信出版社',\n",
       " '上海译文出版社',\n",
       " '東立',\n",
       " '中国人民大学出版社',\n",
       " '上海人民出版社',\n",
       " '机械工业出版社',\n",
       " '广西师范大学出版社',\n",
       " '译林出版社',\n",
       " '人民邮电出版社',\n",
       " '生活·读书·新知三联书店',\n",
       " '上海古籍出版社',\n",
       " '新星出版社',\n",
       " '清华大学出版社',\n",
       " '电子工业出版社',\n",
       " '中国社会科学出版社',\n",
       " '社会科学文献出版社']"
      ]
     },
     "execution_count": 133,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "publishers_list"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 7. 书籍评分比较高的出版社"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 分析\n",
    "这个分析涉及评分和出版社，出版社可以直接使用上一个分析中得到的所有不重复出版社的20个数据<br>\n",
    "评分可以和 4 中的一样，采用求加权平均评分的方式。<br>\n",
    "评分这里一列的数据可以直接使用 4 中的已经清洗过评分后的 data2 的数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "149345"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data5 = data2.copy()\n",
    "len(data5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "13543"
      ]
     },
     "execution_count": 141,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(publishers)    # 所有不重复的出版社"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "到这里，我们获取到了所有有评分的总数据、所有出版社的名称<br>\n",
    "下一步，我们将统计每一个出版社的平均评分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
       "       0., 0., 0.])"
      ]
     },
     "execution_count": 168,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_score5 = np.zeros(len(publishers_list))\n",
    "y_score5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])"
      ]
     },
     "execution_count": 169,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_num5 = np.zeros(len(publishers_list), dtype=int)\n",
    "y_num5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "149345\n",
      "149345\n"
     ]
    }
   ],
   "source": [
    "publishers5 = data5['publisher']  # 所有数据中的出版社列\n",
    "score5 = data5['score']     # 所有数据中的评分列\n",
    "print(len(publishers5))\n",
    "print(len(score5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 31.3 s, sys: 51.8 ms, total: 31.4 s\n",
      "Wall time: 31.5 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for m in range(len(score5)):\n",
    "    index = 0\n",
    "    for x in publishers_list:\n",
    "        if publishers5[m] == x:\n",
    "            y_score5[index] += score5[m]\n",
    "            y_num5[index] += 1\n",
    "        index += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([23572.4, 19307.5, 16789.4, 17193.8, 17977.4, 18708.5, 13580.1,\n",
       "       13497.2, 14339.2, 11704.8, 14206. , 14025.7, 11288.9, 13243.9,\n",
       "        9666.3, 12373.5,  7992.1,  8554.5,  6350.7,  5614.3])"
      ]
     },
     "execution_count": 173,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_score5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2911, 2434, 2067, 2081, 2369, 2298, 1594, 1729, 1806, 1529, 1806,\n",
       "       1741, 1442, 1637, 1154, 1622, 1033, 1134,  806,  727])"
      ]
     },
     "execution_count": 174,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_num5"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "因为除数不能为0，所以我将个数为0的全置为1，对求平均值不影响"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2911, 2434, 2067, 2081, 2369, 2298, 1594, 1729, 1806, 1529, 1806,\n",
       "       1741, 1442, 1637, 1154, 1622, 1033, 1134,  806,  727])"
      ]
     },
     "execution_count": 175,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "index = 0\n",
    "for i in y_num5:\n",
    "    if i==0:\n",
    "        y_num5[index] = 1\n",
    "    index += 1\n",
    "y_num5"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "求取每一个出版社的平均分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([8.09769839, 7.93241578, 8.12259313, 8.26227775, 7.58860279,\n",
       "       8.14120975, 8.51951066, 7.80636206, 7.93975637, 7.65519948,\n",
       "       7.86600221, 8.05611717, 7.82864078, 8.0903482 , 8.37634315,\n",
       "       7.62854501, 7.73678606, 7.54365079, 7.8792804 , 7.72255846])"
      ]
     },
     "execution_count": 176,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y5 = y_score5/y_num5\n",
    "y5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[6, 14, 3, 5, 2, 0, 13, 11, 8, 1, 18, 10, 12, 7, 16, 19, 9, 15, 4, 17]"
      ]
     },
     "execution_count": 182,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y5_list = list(y5)   # 将nparray转为list，方便后面选取最大的20个数的索引下标\n",
    "import heapq\n",
    "# 最大的20个数的索引\n",
    "y5_list_index = map(y5_list.index, heapq.nlargest(20, y5_list))\n",
    "y5_list_index = list(y5_list_index)\n",
    "y5_list_index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['人民文学出版社', '北京大学出版社', '商务印书馆', '中华书局', '中信出版社', '上海译文出版社', '東立', '中国人民大学出版社', '上海人民出版社', '机械工业出版社', '广西师范大学出版社', '译林出版社', '人民邮电出版社', '生活·读书·新知三联书店', '上海古籍出版社', '新星出版社', '清华大学出版社', '电子工业出版社', '中国社会科学出版社', '社会科学文献出版社']\n"
     ]
    }
   ],
   "source": [
    "print(publishers_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，根据排序后前20的索引获取排前20的所有出版社"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['東立', '上海古籍出版社', '中华书局', '上海译文出版社', '商务印书馆', '人民文学出版社', '生活·读书·新知三联书店', '译林出版社', '上海人民出版社', '北京大学出版社', '中国社会科学出版社', '广西师范大学出版社', '人民邮电出版社', '中国人民大学出版社', '清华大学出版社', '社会科学文献出版社', '机械工业出版社', '新星出版社', '中信出版社', '电子工业出版社']\n"
     ]
    }
   ],
   "source": [
    "new_publishers_list =[]\n",
    "for i in y5_list_index:\n",
    "    new_publishers_list.append(publishers_list[i])\n",
    "print(new_publishers_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "然后，根据排序后前20的索引获取排前20的所有出版社的出版书籍量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 187,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[8.519510664993696, 8.376343154246106, 8.262277751081205, 8.141209747606602, 8.122593130140281, 8.097698385434532, 8.090348197923024, 8.056117174037892, 7.939756367663341, 7.932415776499564, 7.879280397022335, 7.866002214839434, 7.828640776699034, 7.80636205899363, 7.736786060019366, 7.7225584594222845, 7.655199476782215, 7.6285450061652345, 7.588602785985649, 7.5436507936507935]\n"
     ]
    }
   ],
   "source": [
    "new_y5 =[]\n",
    "for i in y5_list_index:\n",
    "    new_y5.append(y5[i])\n",
    "print(new_y5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/font_manager.py:1328: UserWarning: findfont: Font family ['HiraginoSansGB-W3', 'PingFangSC-Regular', 'Microsoft YaHei', 'SimHei'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAIMCAYAAACaOG9LAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3X+Q3XV97/HXh2z4pS0YSO4AkRt/gDWBEJhF8cc4V7j8EG7T4sQCDkRQGqZTvMYfWB2napgy0/ampDrQSymUiGAR8Afpj4tQLKVMBbLBXCBgrUIEIpUtBlNCJS587h+EvQkE9yTZs5/lnMdjJsPuOd89vL/7ZZc85/s9n2+ptQYAAICJt0vrAQAAAPqVIAMAAGhEkAEAADQiyAAAABoRZAAAAI0IMgAAgEYEGQAAQCOCDAAAoBFBBgAA0IggAwAAaGSgGy+677771lmzZnXjpQEAACa9VatW/XutdfpY23UlyGbNmpWhoaFuvDQAAMCkV0r5USfbuWQRAACgEUEGAADQiCADAABoRJABAAA0IsgAAAAaEWQAAACNCDIAAIBGBBkAAEAjggwAAKARQQYAANCIIAMAAGhEkO2EZcuWZc6cOTnkkENy2mmn5ec///lWzy9fvjzTp0/PvHnzMm/evFx22WVJktWrV+dtb3tb5syZk7lz5+arX/1qi/EBAIDGBNkOWrduXb74xS9maGgo9913X5599tlcc801L9nulFNOyerVq7N69eqcffbZSZI999wzV155ZdasWZMbb7wxixcvzpNPPjnRuwAAADQ20HqAV7KRkZH853/+Z6ZOnZqnn346+++/f0dfd/DBB49+vP/++2fGjBkZHh7O3nvv3a1RAQCAScgZsh10wAEH5BOf+EQOPPDA7Lffftlrr71y3HHHvWS7r33ta5k7d24WLFiQRx555CXP33XXXdm0aVPe8IY3TMTYAADAJCLIdtD69etzww035KGHHsqPf/zjbNy4MVddddVW2/z6r/961q5dm3vuuSfHHntsPvCBD2z1/GOPPZYzzjgjV1xxRXbZxaEAAIB+owJ20N///d/nda97XaZPn56pU6fmve99b/75n/95q2322Wef7LbbbkmSs88+O6tWrRp9bsOGDTnppJNywQUX5KijjprQ2QEAgMlBkO2gAw88MHfccUeefvrp1Fpzyy235M1vfvNW2zz22GOjH69YsWL0+U2bNuXkk0/OwoULs2DBggmdGwAAmDws6rGD3vrWt2bBggU54ogjMjAwkMMPPzyLFi3KZz/72QwODmb+/Pn54he/mBUrVmRgYCDTpk3L8uXLkyTXXnttbrvttjzxxBOjjy1fvjzz5s1rt0MAAMCEK7XWcX/RwcHBOjQ0NO6vC7/MsmXLctlll6WUkkMPPTRXXHFFdt9999HnL7nkklx88cWZMmVKXv3qV+fSSy/N7Nmz84tf/CJnn3127r777oyMjGThwoX59Kc/3XBPAAB4pSulrKq1Do61nUsW6Qmd3Bfu/e9/f+69996sXr06n/zkJ/Oxj30sSXLdddflmWeeyb333ptVq1blz//8z7N27doGewEAQL/pqyAbGWk9wcTqv/19/r5wIyMj27wv3K/+6q+Ofrxx48aUUpIkpZRs3Lhx9Ot33XXXrbYFAIBu6av3kA0MJJde2nqKibNoUesJJs6W94XbY489ctxxx23zvnAXX3xxLrzwwmzatCnf/va3kyQLFizIDTfckP322y9PP/10li1blmnTpk30LgAA0If66gwZvauT+8Ilye/+7u/mhz/8Yf7oj/4of/AHf5Dk+ZtzT5kyJT/+8Y/z0EMP5U/+5E/y4IMPTvQuAADQhwQZPaGT+8Jt6dRTT803v/nNJMlXvvKVnHDCCZk6dWpmzJiRd7zjHbEoDQAAE0GQ0RM6uS/cv/7rv45+/Ld/+7c56KCDRr/2hcsXN27cmDvuuCO/9mu/NnHD96hly5Zlzpw5OeSQQ3Laaafl5z//+VbPX3jhhZk9e3bmzp2bY445Jj/60Y9Gn3v44Ydz3HHH5c1vfnNmz55tkRUAoGcJMnrClveFO/TQQ/Pcc8+N3hduxYoVSZKLLrooc+bMybx583LhhRfmS1/6UpLnL2N86qmnMmfOnBx55JE566yzMnfu3Ja784rXyaqXhx9+eIaGhnLPPfdkwYIF+eQnPzn63MKFC3PeeeflgQceyF133ZUZM2ZM9C4AAEyIvlrUg962ZMmSLFmyZKvHzj///NGPv/CFL2zz61796lfnuuuu6+ps/eiFVSunTp26zVUv3/3ud49+fNRRR42+5+/+++/PyMhIjj322CTPHx8AgF7lDBkw7rZc9XK//fbLXnvttc1VL19w+eWX5z3veU+S5Pvf/3723nvvvPe9783hhx+e8847L88+++xEjQ4AMKEEGc30333SWk8wcTpd9TJJrrrqqgwNDeW8885L8vyZtX/6p3/K0qVLs3Llyjz44INZvnz5BE4PADBxXLJIM+4L17u2XPUyyeiql6effvpLtrvgggvyj//4j9ltt92SJDNnzsy8efPy+te/Pknym7/5m7njjjvyoQ99aGJ3AgBgAjhDBoy7Tla9/O53v5tzzjknK1as2GrRjiOPPDJPPvlkhoeHkyTf/va3M3v27AmdHwBgoggyYNx1surleeedl6eeeirve9/7Mm/evMyfPz9JMmXKlCxdujTHHHNMDj300NRa89u//dstd6dnjHUrgttuuy1HHHFEBgYGcv3117/k6zds2JCZM2fm3HPPnaiRAaDnlVrruL/o4OBgnaw31nWJ3OTieMDEWLduXd75znfm/vvvzx577JHf+q3fyoknnpgzzzxzdJu1a9dmw4YNWbp0aebPn58FCxZs9Rof+chHMjw8nGnTpuWiiy6a4D3oPcuWLctll12WUkoOPfTQXHHFFdl9991Hn7/tttuyePHi3HPPPbnmmmtGj8fq1avzO7/zO9mwYUOmTJmSz3zmMznllFNa7QYAL6OUsqrWOjjWds6QAfSJF25FMDIyss1bEcyaNStz587NLru89H8Nq1atyk9+8pNfulomnevkXn0HHnhgli9fnve///1bPb7nnnvmyiuvzJo1a3LjjTdm8eLFefLJJydy/J60M2eQv/SlL+Wggw7KQQcdNHqPS3bOWMfjmWeeySmnnJI3vvGNeetb35q1a9cmSTZt2pSzzjorhx56aA477LDceuutEz88bCdBBiTpr1Ugk/7b3+29FcGWnnvuuXz84x/P0qVLuzxlf9nRQD744INz0EEHJUn233//zJgxY/Q9l+yYnQnkn/70p1myZEnuvPPO3HXXXVmyZEnWr18/keP3nE6Ox+WXX57XvOY1+cEPfpCPfvSj+b3f+70kyV/8xV8kSe69997cfPPN+fjHP57nnntuwvcBtodVFoEkVr3sdVveimDvvffO+973vlx11VUvWflyW/7sz/4sJ554YmbOnDkBk/aHLQN5jz32yHHHHbdDZx/vuuuubNq0KW94wxu6MGV/Getm9rNmzUqSlwTyt771rRx77LGZNm1akuTYY4/NjTfemNNOO21C5u5VYx2PG264IZ///OeTJAsWLMi5556bWmvuv//+HH300UmSGTNmZO+9987Q0FDe8pa3TPQu9JSxLrF+5plnsnDhwqxatSr77LNPvvrVr47+zNxzzz0555xzsmHDhuyyyy5ZuXLlVl+LM2QAfWHLWxFMnTp19FYEnfjOd76Tiy66KLNmzconPvGJXHnllfnUpz7V5Yl72/bcq+/lPPbYYznjjDNyxRVXbPMyUzq3M2eQ161bl9e+9rWjn8+cOTPr1q3r1qh9oZPjseX3fWBgIHvttVeeeOKJHHbYYVmxYkVGRkby0EMPZdWqVXnkkUda7EbP2JkzliMjIzn99NNzySWXZM2aNbn11lszderUFrsxqfkNDtAHOrkVwcu5+uqr8/DDD2ft2rVZunRpFi5cmD/8wz/s8sS9bWcCOXl+xcuTTjopF1xwQY466qguTtofxiOQGT87czw++MEPZubMmRkcHMzixYvz9re/PVOmTOnyxL1vrEusb7jhhnzgAx9I8vwZy1tuuSW11tx0002ZO3duDjvssCTJPvvs43hsgyAD6AOd3Ipg5cqVmTlzZq677rqcc845mTNnTuOpe9fOBPKmTZty8sknZ+HChS9ZCZMdszOBfMABB2x1BubRRx/NAQcc0K1R+0Inx2PL7/vIyEh+9rOfZZ999snAwECWLVuW1atX54YbbsiTTz6Zgw8+uMVu9IydOWP5/e9/P6WUHH/88TniiCPyx3/8xy12YdITZAB9YsmSJfne976X++67L1/+8pez22675fzzzx+9B9yRRx6ZRx99NBs3bswTTzyRNWvWvOQ1zjzzTEvej4OdCeRrr702t912W5YvX5558+Zl3rx5Wb16dcvdecXbmUA+/vjjc9NNN2X9+vVZv359brrpphx//PFdnri3dXI85s+fP7qi5fXXX5+jjz46pZQ8/fTT2bhxY5Lk5ptvzsDAQGbPnj3h+9BLduaM5cjISG6//fZcffXVuf322/ONb3wjt9xyS5cnfuWxqAcANLBkyZIsWbJkq8fOP//80Y9fCOQXO/300ztajIXObRnIAwMDOfzww0cDeXBwMPPnz8/KlStz8sknZ/369fnrv/7rfO5zn8uaNWsybdq0/P7v/36OPPLIJMlnP/vZ0QU+2DGdHI8PfehDOeOMM/LGN74x06ZNG31P0+OPP57jjz8+u+yySw444IB8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\n",
      "text/plain": [
       "<Figure size 1080x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plt.rc('font', **{'family' : 'HiraginoSansGB-W3, PingFangSC-Regular, Microsoft YaHei, SimHe'})\n",
    "plt.figure(figsize=(15, 9))\n",
    "plt.bar(new_publishers_list[:8], new_y5[:8], facecolor='#9999ff', edgecolor='white', width=0.6)\n",
    "for x, y in zip(new_publishers_list[:8], new_y5[:8]):\n",
    "    # ha: horizontal alignment\n",
    "    # va: vertical alignment\n",
    "    plt.text(x, y, '%.2f' % y, ha='center', va='bottom')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由于Mac系统的原因，设置后也不能正常显示中文，所以下面我将8个出版社依次排出👇"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 197,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['東立',\n",
       " '上海古籍出版社',\n",
       " '中华书局',\n",
       " '上海译文出版社',\n",
       " '商务印书馆',\n",
       " '人民文学出版社',\n",
       " '生活·读书·新知三联书店',\n",
       " '译林出版社']"
      ]
     },
     "execution_count": 197,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_publishers_list[:8]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 8. 出书多的作者"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 分析：\n",
    "首先，获取并清洗所有的作者，去掉缺失值<br>\n",
    "然后，根据作者列表，获取到每一个作者的书籍数量<br>\n",
    "进行排序，排序后取书籍最多的10个作者"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（1）数据清洗"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002.4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998-01-01</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007-4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000-1</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                  2002.4   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                    2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社              1998-01-01   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                  2007-4   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                        2000-1   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 198,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 248,
   "metadata": {},
   "outputs": [],
   "source": [
    "data6 = data.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 249,
   "metadata": {},
   "outputs": [],
   "source": [
    "data6 = data6[(data6['author']!='') & (data6['author']!=None)]      # 除去缺失值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 250,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "217676"
      ]
     },
     "execution_count": 250,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 251,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "224635"
      ]
     },
     "execution_count": 251,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "（2）获取所有作者，即去掉重复值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 252,
   "metadata": {},
   "outputs": [],
   "source": [
    "authors = data6['author'].drop_duplicates()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 253,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "134792"
      ]
     },
     "execution_count": 253,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(authors)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 254,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    莫林虎\n",
       "1     杨镰\n",
       "2     鲁迅\n",
       "3    刘扬忠\n",
       "4    王兆鹏\n",
       "Name: author, dtype: object"
      ]
     },
     "execution_count": 254,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "authors.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 255,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., ..., 0., 0., 0.])"
      ]
     },
     "execution_count": 255,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "author_book_num = np.zeros(len(authors))\n",
    "author_book_num"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 322,
   "metadata": {},
   "outputs": [
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<timed exec>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "%%time\n",
    "all_author = data6['author']\n",
    "for a in all_author:\n",
    "    index = 0\n",
    "    for b in authors:\n",
    "        if a==b:\n",
    "            author_book_num[index] += 1\n",
    "        index += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "由于数据量达到20多万，太大，短时间内本机无法算出，且还未找到合适的算法，这道题暂时只能搁置了。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 9. 评分高与评论数量之间是否存在某种关系"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 分析：\n",
    "首先进行数据清洗，去掉评分或评论数量为空、值异常的数据<br>\n",
    "然后在同一个图中分别画出评分和评论数量的折线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>nid</th>\n",
       "      <th>title</th>\n",
       "      <th>author</th>\n",
       "      <th>publisher</th>\n",
       "      <th>translators</th>\n",
       "      <th>publication</th>\n",
       "      <th>originalname</th>\n",
       "      <th>framed</th>\n",
       "      <th>isbn</th>\n",
       "      <th>pagenumber</th>\n",
       "      <th>price</th>\n",
       "      <th>books</th>\n",
       "      <th>numberofreviews</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2</td>\n",
       "      <td>1584537</td>\n",
       "      <td>中国诗歌源流史</td>\n",
       "      <td>莫林虎</td>\n",
       "      <td>中国社会科学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2002.4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787500429395</td>\n",
       "      <td></td>\n",
       "      <td>28.0</td>\n",
       "      <td>None</td>\n",
       "      <td>12</td>\n",
       "      <td>7.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3</td>\n",
       "      <td>1394349</td>\n",
       "      <td>元诗史</td>\n",
       "      <td>杨镰</td>\n",
       "      <td>人民文学出版社</td>\n",
       "      <td></td>\n",
       "      <td>2003</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787020042371</td>\n",
       "      <td>750</td>\n",
       "      <td>42.00</td>\n",
       "      <td>None</td>\n",
       "      <td>16</td>\n",
       "      <td>7.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>1203363</td>\n",
       "      <td>中国小说史略</td>\n",
       "      <td>鲁迅</td>\n",
       "      <td>上海古籍出版社</td>\n",
       "      <td></td>\n",
       "      <td>1998-01-01</td>\n",
       "      <td></td>\n",
       "      <td>平装</td>\n",
       "      <td>9787532523337</td>\n",
       "      <td>297</td>\n",
       "      <td>12.90</td>\n",
       "      <td>蓬莱阁丛书</td>\n",
       "      <td>1081</td>\n",
       "      <td>9.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5</td>\n",
       "      <td>1200352</td>\n",
       "      <td>唐宋词流派史</td>\n",
       "      <td>刘扬忠</td>\n",
       "      <td>福建人民出版社</td>\n",
       "      <td></td>\n",
       "      <td>2007-4</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787211033058</td>\n",
       "      <td>457</td>\n",
       "      <td>30.00元</td>\n",
       "      <td>None</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>1134261</td>\n",
       "      <td>唐宋词史论</td>\n",
       "      <td>王兆鹏</td>\n",
       "      <td>\\n</td>\n",
       "      <td></td>\n",
       "      <td>2000-1</td>\n",
       "      <td></td>\n",
       "      <td></td>\n",
       "      <td>9787020030842</td>\n",
       "      <td>387</td>\n",
       "      <td>18.00元</td>\n",
       "      <td>中国古典文学研究丛书</td>\n",
       "      <td>28</td>\n",
       "      <td>8.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id      nid    title author  publisher translators publication  \\\n",
       "0   2  1584537  中国诗歌源流史    莫林虎  中国社会科学出版社                  2002.4   \n",
       "1   3  1394349      元诗史     杨镰    人民文学出版社                    2003   \n",
       "2   4  1203363   中国小说史略     鲁迅    上海古籍出版社              1998-01-01   \n",
       "3   5  1200352   唐宋词流派史    刘扬忠    福建人民出版社                  2007-4   \n",
       "4   6  1134261    唐宋词史论    王兆鹏   \\n                        2000-1   \n",
       "\n",
       "  originalname framed           isbn pagenumber   price       books  \\\n",
       "0                      9787500429395               28.0        None   \n",
       "1                  平装  9787020042371        750   42.00        None   \n",
       "2                  平装  9787532523337        297   12.90       蓬莱阁丛书   \n",
       "3                      9787211033058        457  30.00元        None   \n",
       "4                      9787020030842        387  18.00元  中国古典文学研究丛书   \n",
       "\n",
       "  numberofreviews score  \n",
       "0              12   7.6  \n",
       "1              16   7.5  \n",
       "2            1081   9.1  \n",
       "3                        \n",
       "4              28   8.5  "
      ]
     },
     "execution_count": 216,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 278,
   "metadata": {},
   "outputs": [],
   "source": [
    "data7 = data.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 280,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "153426"
      ]
     },
     "execution_count": 280,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data7 = data7[(data7['score']!='')]\n",
    "len(data7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 281,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "153426"
      ]
     },
     "execution_count": 281,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scores7 = []\n",
    "for score in data7['score']:\n",
    "    score = float(score)\n",
    "    scores7.append(score)\n",
    "data7['score'] = scores7\n",
    "len(scores7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 282,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/font_manager.py:1328: UserWarning: findfont: Font family ['HiraginoSansGB-W3', 'PingFangSC-Regular', 'Microsoft YaHei', 'SimHei'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data7[['score']].boxplot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 283,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>153426.000000</td>\n",
       "      <td>153426.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>166519.703662</td>\n",
       "      <td>7.882241</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>116456.539851</td>\n",
       "      <td>0.885802</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>64160.250000</td>\n",
       "      <td>7.300000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>150448.500000</td>\n",
       "      <td>7.900000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>254361.750000</td>\n",
       "      <td>8.500000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>419816.000000</td>\n",
       "      <td>10.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  id          score\n",
       "count  153426.000000  153426.000000\n",
       "mean   166519.703662       7.882241\n",
       "std    116456.539851       0.885802\n",
       "min         2.000000       2.000000\n",
       "25%     64160.250000       7.300000\n",
       "50%    150448.500000       7.900000\n",
       "75%    254361.750000       8.500000\n",
       "max    419816.000000      10.000000"
      ]
     },
     "execution_count": 283,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data7.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 284,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.8000000000000003"
      ]
     },
     "execution_count": 284,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(8.5-7.3)*1.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 285,
   "metadata": {},
   "outputs": [],
   "source": [
    "data7 = data7[(data7['score']<=10) & (data7['score']>5.5)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 286,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "152026"
      ]
     },
     "execution_count": 286,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 287,
   "metadata": {},
   "outputs": [],
   "source": [
    "data7 = data7[(data7['numberofreviews']!='') & (data7['numberofreviews']!=None) ]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 288,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "152026"
      ]
     },
     "execution_count": 288,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 306,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "152026"
      ]
     },
     "execution_count": 306,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "numberofreviews7 = []\n",
    "for numberofreview in data7['numberofreviews']:\n",
    "    numberofreview = int(numberofreview)\n",
    "    numberofreviews7.append(numberofreview)\n",
    "data7['numberofreviews'] = numberofreviews7\n",
    "len(numberofreviews7)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 319,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/font_manager.py:1328: UserWarning: findfont: Font family ['HiraginoSansGB-W3', 'PingFangSC-Regular', 'Microsoft YaHei', 'SimHei'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAIMCAYAAACE8V/4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd4VFXi//HPJaEjCgJ2jSgqltVF7F2wsquu29vPdYtft7lVDSr2gmt37WUtqIg0EUPvvSRASAgdAkmAJNSEQPr9/TGZyfSSmcmczLxfz+Mjc+fOvee2c87nzs0cy7ZtAQAAAADM0S7RBQAAAAAAeCKoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGHSW3NlvXr1sjMyMlpzlQAAAABgjJycnN22bfcONV+rBrWMjAxlZ2e35ioBAAAAwBiWZW0LZz4efQQAAAAAwxDUAAAAAMAwBDUAAAAAMAxBDQAAAAAMQ1ADAAAAAMMQ1AAAAADAMAQ1AAAAADAMQQ0AAAAADENQAwAAAADDENQAAAAAwDAENQAAAAAwDEENAAAAAAxDUAMAAAAAwxDUAAAAAMAwBDUAAAAAMAxBDQAAAAAMEzKoWZb1P8uyyizLyneb1tOyrOmWZW1s+n+P+BYTAAAAAFJHON+ofSzpZq9pmZJm2rbdT9LMptcAAAAAgBgIGdRs254naa/X5NslfdL0708k3RHjcgEAAABAymrp36gdY9v2zqZ/75J0TIzKk1D7D9UqIzNLA56art9/ku2avmDjbmVkZunaF2bryYkFkqTpBaU6dWiWDtbU+13W1ytLdOYjk1Vb3xhRGb5dvUP9Hp6k6rqGoPPd+tp8PTd5rc9027aVkZmljMwsSdLSLXuUkZml8soa1zw19Q3KyMzSFcNn+Xz+y2Xbde5jU3XNC7OVkZmlSXk7feZxamhsXtf4lcWuf2/bU+UxX2OjrXMfm6ovl20Puk3hqq5r0BkPT9bE3B16+tsCZWRm6c3ZmzRuRbHrOGVkZmnuhvKwlzly2Xad99hUNTbaeurbAt3+5kLXe/eNXKnff7I85DIenZCvH729qEXb5FRWWa2MzCxlF3rfG0mci5+ZoQ/mb/GY9teRKz2uEW+V1XU6dWiWZhSUekyvqW/QmY9M1oRVJZKksgrH9uZs893eiuo6ZWRmada6Ui3butfnPA7kk0WF+u6T03ymr9lxQBmZWXpgTG7IZXh7f94WXfLsDP358xX6vxHN2z1hVYnOeGSyauod1+uG0kplZGZpS/lBHTjsKP/s9WXavueQMjKz9H8jsnX9S3P0wJhc/eqDpR7reH3mRl334hxd/txMvTN3c8Cy/O3Llfrdx6HPR3ebyg4qIzNLm8oqg87nXnc4zV5fpozMLB04XOcx/cMFWzXw6Rkh1/2rD5aG3OeDX56rl6dvcL32d84l0kvT1isjM0tnPzol5LzOfdjYaCu3aL8yMrO0Y/9h1/tXDJ+lt+d4Ht+pa3ap79AsVQVoT0Kpa2jUWcMmKyMzS/eOyPF5/7oX5+jXHy71uYa+yd2hjMws/eSdxa5pywsd19rfvlwpSRry+nxlZGZpSr7/tsDZbv6//y3zmP7qjA26/sU5AcscqA1zmpK/SxmZWfr36FyNzi7S2Y9OUX2D//b03bmbddlzMz2mebfBQ8flKSMzS5ljV7vmGfTSHL08fYN2H6xRRmaWlmzZ43f5/5myznVde9tb5dj+hZt2B9wWSfrZe4s1dFyexzR/7bPT7z/J1n0jV6q80lG2ZVsddaSzHlu5fZ8yMrO0tKnM/q5df9PySxyfL9p7yGedf/o8R/eOyHHtj99+vFyXN+3XHfsPKyMzS7lF+4NuZ0sMfHqGPlyw1Wf6z99boqHjVnu8n7V6Z8g+0nUvztHrMzc2LXu6/tf02eymc7usojpkmaKpg5Y0HdfzHp8qSSHPr3i4+6Nl+ueoVT7Tr3txjjIys/Svr3J1y2vzPdqscDyT1dznCsedby3U49+sCfh+8T5H25hXfCCs5UXivXmbdemzM0PPaLiof0zEtm1bkh3ofcuy7rEsK9uyrOzy8vA7zomQX1IhyVHxzljb3MF8d56jUS3cc0j/W+i44F+dsUG2LRXurvJdkKRnJq1VTX2j9h+qjagMz09Zp7oGW2UVwTukBTsr9O5c30qkvtHzUDgrt5xt+1zT9hx0lKnErfPg9Og3a3Swpl7b9jgq8Remrg9YBmfnVJIe/6bA9e/pXp3z2oZGHayp16NBLtZIlFXUqLahUf+Zuk4fNG3fC1PX6+ksR6Nf2FT2t+eEV5FI0rCv81VZU68G29aHC7Z6NEbf5O7QjLVlIZfx6eJtynbbzy3hbIw/WlgY1XJiqayyxrVvnSbm7vC4RrxtLq+SbUv/nbXRY/reqlrV1DfquUnrJEmLmxqujxdt81nGxlJHqHhj1iZ9uMBxrvsLdN4e+2aN9h2q85n+1fIix/+zi0Muw9szk9aqtKJGWXk7NXVN83Y/O2mtausbta/Ksb7xKx0BdHL+Lq3b6ahP3p69WdMKdkmSpq4p1ZbyKn2VXawFXh27l6dv0NbdVdpxoFrDJ68LWJYJq3Zo5rrQ56O7b1fvkCR9kxv4xksgb8xyXEfO4+H01LcF2n0wdHBesGl3yH2+qeygq2Ml+T/nEum/TfvgUG3wG2juGmxbXyx13Jya53bTqGT/YT0/xfP4vjxtgxptqWifb+c5HBWH61Rd5wgkU9bs8nl/6+4qzd/oON/cbwI933SeLXOb9lFTGzdhleOcWbPDcR67B2l3q5s6WPO8boy9OmOjtgRoH6XAbZjTS9Mcbc+YnGI9ObFAh2obdChA5/y5yeu084Bn59u7DR7ZdKPwy6Z6QHLUU6/P3KgVTfX2B/N9w4IkvdUUrJ3H011usaOteG9e8E79ki17XWVwcrZfK7b7thsz1pbqm9wdruPlDBujm64l5znkL+AEM6pp+2ev961DJuXt0pQ1u5Rd6CjPrHVl2tG0X503Pr23IRZ2H6zRU98W+ExfvGWPRi4r8njf2UcqDRK2tu6ucp2vuw/W6smmz360qFCStHRr6HYkmjrIGfAqqx03XkKdX/Ewe325xjW1R+62Nl2TY1cUa+3OCo82Kxzvz2/uc4Vjxfb9+rhpv/szZ33TebU89ufVs5PWaVcYodx0LQ1qpZZlHSdJTf8P2Guwbfs927YH2rY9sHfv3i1cHZJCwDgPAAAAwF1Lg9o3ku5q+vddkibEpjjJh2wiWVaiSwAAAAC0LeH8PP9ISYslnWlZVrFlWb+TNFzSDZZlbZQ0uOk13JBNfNnEVgCAYWiZAJgqPdQMtm3/PMBbg2JcFhjI8SeI0bGaYmsMFgUAQFzw9AcA00T9YyIIzsRw0tqNEY0fAAAAEBmCWpwQTnwZmFnRRph4wwMA9XqqSKY6OIk2BSmAoIa4I7Midlp+NlncPQFgkLYYftpyNdqGi44URlCLs7b2AxotrcjC+Vu2WPy9G2Citnado3Vxdpgt3KYpXseRAIFUR/cwMIJaDDz1bYHembvZY5oVourNLzmg299cqMMBBlD9/hsLVFntO2jvi1PXKyMzK6xy/eTdxR4DO943cqXG5vgOPJu1eqfu+TTb7zIK9xzS7oM1uvW1+Spu4WCsTo22VLQ3umUEE+vG7v7RuX4HOPU2e12Zfv3h0qjX9/HCrXrk6/yg81RU1+l7/52vTWWVQedzN2JxoYaOWx1l6RznrD+PTch3DfDpFG4oHzouz/XvaWt26e6PljVNX60Ri5sHwd5UdlCS9MbsjcrIzFJldZ0m5u5Q/2FT9OsPlwZcX9HeQ8rIzNKUfM+Bngt2VCgjM0ujohxk03mdj2nBINrhcOyHQtdr536I1qJNu/Wz9xarobF5v83fWB7kE9KP3lms8srQA1y3prE5xbpv5EpNLyjVbz5apvkby/WL95eosWm7Ri7brvtH58Z8vX/4NFuT8nb6PffdTcqLfIDxRHn62wLN3VCuSXmhB779eOFWPTw+TzMKSnXX/5b5vD9zbfOg8LX1jRGXZUr+Tm10O9craxwDB9/hp838JMhguuFqbKo/pheUugaHj8bG0kp9/7/+2/CySt8BeO8ZkaOqmnplZGbpu09O83jvj5+vkOQYyLysotpvXffm7E2uf//9y5UanV3k8f4dby70qb8fnbBGGZlZysjM0uHahrD7FZJ01/+WKSMzS4s27w77M04Hm7bzrTmbQs8cpSlegzg767v7Rq4M2B/y9ov3l6imvkE/eWex5m0oV0Zmlm58Za7PfPd8mq2s1b7X+5T8nbpnRE4LtyC2Xp3hf9B6b0PH5WnE4kKNX1msv45cGfF6Kqvr9P3/LtDG0tD9lEDf0H62ZJseHOPZb/nXV7n6smnA9a+WF+mfo1YFXO6GMNbdVhDU3DS0MNJ/uGCrhk9eF9Fnnvy2QLlF+5VbvN/v+wcO12nR5j0+09+YHX7ltmzrXh047GgoLEv6JneH/jU61ydE/vmLFZpWUOpvEZKkr1eWqGBnhT5aWBj2ugP5cMHWqJfRWt9ejM4p1kPj80LO94dPszV/Y+QNlrfHJxZo/yHH8Qq0jXPXlyu/pEKvzNgY9nKHTVijkcuKQs8YwtNZBX6nf7J4m57OWuv/QyGekznk1um6Z0SOZq93hIWRy4r09aodTYuwtGV3lSQpv6RCkuPmwl9HrtThugbN37hbNQE6g09MXCNJuvezFR7Tn5nk2JYHx4Y+vuF4aXp4DWCkRi4r0rAJa1yvXwmzoQ3lb6NWacmWvdpzsDl4/fnzFUE+4TBhVUlM1h8r/xqdq29yd+gPn2Zrzvpy/fnzFVq0eY8qqx0d+6Hj8jQ6jM5YpKYXlOpPn68Ifu6rOWC0BR8s2Kr/G+H/hp3kefPx8YkF+nzpdv0+wA2+333SPL1wT1XEZfG+Xp22lFf5tJmPfbPG77yRcNa7kvSXLyLvmHp7adoG5ZUc0AI/7cKYAOfj0q2O9n7fId9w5/SVWwBzPx4vTF3v+vfXq3bofq8O7qqi/XryW//1tyQt3BRZ+zV3g6Oe/vdXkd8EWdzUr/nPlPUh5ozevZ95BqTdbvWdsz8UyqLNe7R2Z6WWFe7V/2u6KbGh1PeG2bSCUv35C9/zNtC5nAivhtlvGLlsu4ZNWKN/jMrVxNzIb1zM27BbeSUHomqvHvk6X6O8bjiMXVGszKabuw+MXa1xKwO3R+7XRFtHUIszvs6Nn1DfWsI8XA9IFa1ZO/H3lwCQnAhqcUK7CQSWrNdHkm4W0OZEclOIvzEFYCqCGgAASE7cPYmJZAizPIWDtoigFmdtv2oDzMN1hWSSDJ1gpArCDtCaCGpxYnJVlqyPnQEmoeuNSCXjHf/k26JYopYAEBxBDR78hbhwnvWnuQECMKmnyq+5JAS73Wxhj6PGcQTQyghqcZZMgzx79zeT8e4vkIy4VgEzJFGXoEVSoSYKfIxT/OAHxb4JhKAWJ/xccutjl6O1cc4BaE10Z5FMuIkYWsoHtYrqOj04ZrXuG7lSdzUNZuj0ztzNmpi7w2cw43+MWqU1OxwD737vvwtc0//0eY6e/rZAtm2rZP9h1/RbX5uvB8Y0D6xYXdegZVv3SpLGryjRwk279d68zZKkRj/j9o5ctl1jc4o9lhEN98viwqemu/6dX3JA1XW+BVixfZ8kx4Coo7OL9NyktXpn7mb1f3SKax7nALNOU/J36fY3F2py3s6YlFmSduw/rOtfnKN35m6RJG3fe8jj/d0Ha30+89zktVqz44AenZCv4n3N8z/ydZ4yMrOUkZmlJyc2DwRaXlnjswynoePyVFvfqMZGW09MXKMt5b6DXkrS23M2a/zKYt34ylyd9/hUvTN3sxZt2q2S/Yd174gcZWRm6eJnZui5yWt18TMz9NuPl+vGV+Z6LGNS3i6VV9Zo7c4KPTd5rWzbVm19o/460jEYa9bqnaqua/BZd1lFtR4an6e6hkblFR/Qi26DPj7ydZ42llbqyYkFami09fg3a1S4u3kw2lK3zzq9PK35884BkjPHNg+m+rjbYLMZmVnKLzmg+oZGDZuQL0nKLdqvPQdr9O/RuXpgTK7ruth5oFpvzGoefNN9UM2MzCyPbcrZts9nO4eO8xyo+o+f5ehn7y32+AZ7U9lBzVhb5nrtvl0LNzUPJn/tC7O1r8px7swoKNWIxYUasWSbRi3frqHjVmuRn8Fg91bVKnPsao+Btt0HjX1p2nrXwK7Ltu7VlPxdPsuQpPMem6qGRv9dr+cmBR5IWXJss7Meqa1v1NBxq1VWUa3Hv1mjxZv3KCMzS0Ve18jrszZp3a4K13leVdugSXk7NWr5do/5Siuq/a7z6ay1+nih56D1/p4aGJNTrG9CDJT6+syNPsc2t2i/33lL9h9WRmaWLnxqus57bKpemLpOj3ztO1h5RVM9tO9QrR70GvS3odHWsK/ztbp4vzLHrvZ7/YTD33H5eOFW3fzqPF3w5DSPMjs9ND5Pt7+xwON4zF5fpse/WaPtew65BtC1ZeujhVs1e33zeev02ZJt+sX7S/RVdpGGjnNcpwcO1enMRyZrgFs9HsofP1+hkv2HVV3X4FFGST71v/s+rG1o1GMT8nX7mwsDLtvfcf/ryJU+50jOtr2uf//kncWav7Fcw772rKMD+dl7S1Tf0KhXZ2xwtU1Oq4r2a+eBw3p4fJ4a3BpT7/UX7zvkUc888nW+x/t7DtaoqqZeD45ZrYrq5gGo/7dwq857bKrqGhqVkZml6QWlHp97Z+5m9R82RXklByRJj09c47pGncbmFOu1GRu1sbTSo35yq540dJznuevOWc84bxJN8yqDU7C2rCWcbYn3vrRtW89NXqsHx6zWHK/z9s3Zm7Rs615V1zUoIzNLX2UXqbq++brLyMzyqAOeyXL0n3YdqNa1L8z2KcPQcXkqq3TUTfklFRr49HRd/+IcZWRmaXnhXj05sSDoU0zLCvf6TPM+h2avL9OZj0z2mPZtgLpsekGpMjKzAvYFvK3c7qjfnOePs10o2ntIj07IV0OjrbziA8rIzFJVTb12NNV73ufZtDW79MmiQj00Pk+lFdUqq6zWL95foofH56mx0daaHQdc82ZkZumV6YEHnn57jqPv+cLU9Xp5+gYdrKn3meeLpduVkZnlGvDbn5++u1iXPTdTt7w2XyOXOdoT70Nh27ae/rZAm8oOyrZtPTtprTaUVkqSauod+2TRpt0a/HJzf6h43yFljl2tw7UNHstxV9+0PzMys3T9S3P87rO2LD3RBUi0d+Zs9hn93Gn45HV+p48PMBr6pDzHRffbK091TbNtqWBnhQp2Vug/PzpfkvSV2/pGZRe51n/P1af5NJySb6c0lvZUNYebO99a5HeeyW6dzPvHBG5A3N37WY4kR6dg0zO3RFHCZvePydWW3VXa4hYugjlYU693527Ru03Bbu3OCo2+93JJ0mdLmjum/1u4VentHK2ee/DwNnLZdl1+2tHqf9wR+mhhoeZv3K0Z/7zGZ77np3ieN87z6NK+PbVki6OhKKuscZVr1jrfTpkkPfltgeasK1NlTb3+ct3pPhXP1ytL9LOLT/aYNmxCvqauKdXV/Xq7joHTZ0u2u7Z7YEYPfbyoUEu37tXkv10lSXp4fJ5mrC3T9Wf20eCzj5Hk6Ni7e3bSOo1dUex6/fGiQo/3v//GAn3x+0uVX1LhmvaL95dqfVNl7Nx+SXpxWuDGI1Kz15dLkna5BYzffrzcY55AFXfhnkN6cdp6PfOD8/T7T7N93h+5zLd+eH7yOp9645cfLNWfrj1NktRoS6/NbA6i2X7CpiRV1tRrVdE+XXhKT5/33p23xe9nnCbn79Lk/F0qHD5E0wp2aeSyIi3dsldbdle5jstV/5mtwuFDPD5386vzXf/+eOFWfbJ4mySpe6fm5uChcXn68DcX+V3v4xML9Jsrmuu4A4frdFSXDh7z/Hu046bSbecfH7D8L0/foJenb/Ao3+1vLvQpryTd37Q8Z3315uzNAZcrSS9MW6+s1Z43iXK27dOIJds0Yoljewec0kM/GXhS0OX44++4PO52s8fpH6NWebzOLT6gf37VPO3uj5a7yuVUVVOvJ5qW5b0fnGFiUdMNgOvO7K0lW/Z63CwI14/fXqTvXxD42Di5n+Nbd1dpa4i613nc3a3bVakdB6p1wlGdXdN++PZi17+XFe7Vrz90dADX76rUV/deFrJci7fs0aszNurVGRs9pt/x5kJdc0Zvzd1Q7jG9/KBnaLnyed8Q4O6ZSWvVr88RGpVdpB5dPc/typp6fbHUUY/+4dNsfXR383XirOud7XhpRY1+8u5ij2O5ZXeVXpmxQV963RxZXdx8k8JfnSM5+hOby8Nr/5761vecjMa+Q47AunZXpcf0isP1rrZsVHaRx7a+0BTunrz9HEnSA2NW69oze3t8/odvN/c73p+/Vb+/qq8eGp+nwj2+od0ZACTpz1+skNR8g/bH7zjOqV9derLP54K5861FHmV2XpfuPliw1Wea5Dj+knT9S3P9vu/NWX852/x7P8tR4fAh+vuoVcrZtk+3X3C869p45Ot8V9j+w6fZHmW8Z0Rz2156oFqdOqRp0eY9WrR5j3516Sn6kdv1JTnaon/ccEbI8r0+c6PS/Dwm8tB4Rx90ntd15W5p0w2JnQf83+STpOJ9h/XBgq2asmaXxv/pCr3nVpeOW+HoV//ig6Uen3Feq+3Tmr9X8r4p76wTJWlLmNdHW5Ly36jF4zGCUI9DJeIZ9XC+XG40/OH5SIvnezcn9GcCfLkRYPmRFSiSZTd/xvEhy7LC+rxznnAfyXPfhvB+NCb4TLbtO4/763j/DLn7YxTxPJ9ju+zoH/1wFidWpYpkOa3x6ErE+9vQqiz0NRzZvozmemrN6j7crYpF/eCzhBYuMt51lfc5HeurKF6lb0k53Tc11HlnKbr6tS382Yn35jVvr2fZwz4H3WazrOj2X2sMFdKS4rmXy/sQG1rdx0zKBzXAU7Jf8oll+L0AAEhOQepeqmXAXAQ1wA1BAgAAACYgqKUi858MaHVhPyoYzTqi+CzaBlOfugnncRbuUQCJw/UHwB+CWpzxDU3bwuGKL64HtApDA7NJ2EVwSqbxXoFkQ1AD2ih/TSvtbWCmftsFII647gG0YQS1BODuVWpqzaBA3yS+uIIRD9xMQFvSkl9YpO6MgxjWG3RPzUNQi7Nofuo0Gdts00NqqPKZXv5UF+x649Ah0ZKxTm8LYj2EhAmBuqVliPbn103Y9uSVXI0UbW5sENTioK6++ezMK2keIT5n215dMXyW6gMMpuM+8KPkGNRwY2ml33mdHv9mjfYfqtWrMzZo5fZ9+jrAYNzuWmPcI3fuA2aPzinWhFUlWlXkGNxzYu4Ordi+T6Ozi1SwwzFI8mMT8vXspLWSpNyi/frBWwu1bU/kgxiu2VHh8Tp7276A+7OuwXFMnAMnB1K423MQzldnbAh4PL25D/Ycjrnr/Q+E7ZRXckB7q2p174gcZWRmaU6I+d29PccxYLC/wSmnrtml0dlFGvTSHJ/3Svb5DsjuzXuw1g2lB5s/72dA91hqaMlgdS1wuK4hZsuqbwg9YPG/vsrVlPydWrbV9xz6YP4W/W+h/wFZQynYWRF6pii4D/Ac6CbHG7M8By1+ebrnQOj3fJod8bXjPdj123M2uwaPdXpgzGpd/MwMjW4a1Pk/U9bpofF5+npliVYX79emsoP6fOm2iNbbElU19a5/by5rvlb2HKzRza/O08cLt+qiZ2bEfsWt2AxcPnyWbn1tfljn+tQ1u0LO88miwMfFe1DeVdv3B5iz5XZ7nUtS5F3s0grPZfx31qYoShTassK92ldVqwmrdoSc9525wQeUdyrZf1jrdvnWIa/P3Ohx7a/bFbwf4+4n7y7WnBDtcDD7D9X6nf7t6tDbHQnv+sRp/MpizVwXuC3etqfKVedI0q8+WKp1Ox37x30g+PErS7Rw0x6Pz9Y1NOo/U9Z5TJu5rsyjvssvqVBNve915j5YeDCvzdwYeqYwud8UeNftnCrZf1iz1pVGtKzPljSX/xW3NiIjM0uTvOp7b6UVgQfhbgvSE12AZHT/mFzXv//yxUrXv50X4ajlRT6fkaScbft8pt3wyryg6/p4UaG+XL5d1XWNenVG7C6wWPrryOZ9cKi2QX/70lGBFw4f4vGec9onix2N8EO39tftby6UJP303SXq0bVD1GW54ZV5Khw+pMWff2XGBg35zrGu1/Hc5xXV9eraIc312ruj+8XS7SqvrNH0AkeF95uPlmtw/2MkyW9F7c55A+HA4Tqf90bnFGt0TrHfzy31ExS8TcyNbYMYicl5gTt5sQxx3kEgGqNzinVJ36ODzjN2RbHGrvB/TJ7OWtvidS8vbK5zKqvrg8zZMuNWNN842lxepdP7dPOZ58VpnsHsda+OwrSCyBp0f56fsk7p7XyTSVllje4fs1o/HniS3mq6efHFUkeHoEN6O9XWN+qXl5wS9fqD2bK7+SbU/WNWu/594dOOcPb4xIKolr+3yn/HtbUV7KzQt6t36o7vnhB0vv8bkRNyWTPWhn9O3DMiR8sfHhz2/OF43U+o2hBBGEmUh8bn+b3Ot+/1vAHpvJEajp++t8Tj9e6DNT43W8INCZJUuOdQ6JmCeHTCGr/T3ftiseAeRN39Y1Su3+lO17wwx+P1gk27w17n+BUlrnoqkH+P9r/+oePywl5PrGwub67bnpu8TkO+c5zr9YNjW16ez5d6nk+jsv33qZ0ueXZmVP2+ROMbtTg4VBv8bnttGHcVI1FdF3p5LXmW3CSV1XUp/9ihv60/VOu/c92Yovsq2LVl6iVQGyJUJ4tEn5PhfvPtlCzHJdH73V1djNu+eIp0t9U3xn/boj2SVQH6JrE8RUItK97VcKA2MdYO1rTOetzVtKHrR5IaW+kJl2RHUAOQNEwNY8ks2r95Qcuw11sHdYqnaEMd5y0QGYIakFRoBgNL3R5Xa/9dKloHx9UAVLkA4oigloK4Q9g2RXLY2vqjrvHALkFr4hpMNW33eLca8ISPAAAgAElEQVTmt+Kp/icMQKQIaglAPYVwcaq0LXzDgWBMym6cq2gJk85hIBUQ1OKAiiy5JSJot8YplQznLTdBAHhLhrotWfBNMxAZghrQQjQ4MA2PFaWWlg96jLaOb0T9a61zm70fGvVMbBDU4sD0C9j08iF6dNgBSNT3aEa7ALQ9KT/g9ay1gUeQb6n1pcEHvvQeXLI1zF7fvJ3OgVS9RTrOUCALwxzAcXP5waDvX//SHNe/q2obtC5GA4r++J1FUX2+YGeFpNZp9Jxj8o1bWaJPFxX6vL9w0x6P186BSiMdO+mb3B2aEYdrIZGK9x32eF1eWRNw3t0Ha7R0y56A74dr4ebwBy91+iZ3h44/qnPU65aiHyzWada6Mn21vEin9emmFdv3+by/YGPzdo5aXqRGW7rn6r4q2XdY94/xP+Dqza/O00O39teBw3VhfxudkZnVsg2IoV9/uLRFn6up9x2zyn2A8WiVV9ZoTICB6UctdwwIe2nfo/2Os7nzQLUWteBcjdb9Y1bHfBzRcLzhZ4DqYMatKHENzj53fXnQeauaxu3afTBw/XLgcF1E6w9k7obgZXFXeqA6JuuUPMcmW7k9/MGwE2GL2yDL4frXV7kacMpRurpf77A/E8mg4LGwsbRSw77Ob9V1hvLGrI06oUdn5RYd8Pv+1t2ex+K9eVtao1hJx2rNOywDBw60s7OzW2194TChI4BmhcOHcExiYMDJR2lFmA1qMu3z+286Uy9MXZ/oYhilcPgQvTZjo16ZsSGu63nq9nM0bMKauK4jXpLpGvDW54iOKgtyk8IkF2X0iGmYbQ29unUMGtLi5crTe2lBmDdFna7q10vzN/p+5qFbz9Kzk9YF/NxPB56kUdlFYa1j+cODddEz/m8GS9LVZ/TWvAgCZ2tqn2aproFvHZNR4fAhiS6CD8uycmzbHhhqPh59BJLQ/hjdwQXCtf8Q55yJ2kpIa6sSEdJiLdT9+rLK2H07ZzJCGkxEUAMAAEDc8XdyQGQIagCSBj/ECQAAkgVBDQAAAHHHsDZAZAhqAJIGT9UAgLl49BGIDEENAAAgRRGdAHMR1AAAANoQniAEUgNBDQAAAAAMk57oAgDu/jpyZaKLkBS2lFeFPe/s9WVxLAkS7bSHJqlfn25xX09dQ2Pc1xEvqTJOlOna2mDXieRv4OqWfmb2uuBtQMn+wxGvK9IyAPCPb9RglIm5OxJdhJRz90fLE10ExFFDo611uyrjvp7XZ22K+zriZfBLcxNdBCBhlm7dG/T9DaUHw15W8b5D0RYHgBuCGgAgpVVU1ye6CEBSqKppSHQRgKRCUAMAAAAAwxDUAAAAAMAwBDUAAAAAMAxBDQAAAAAMQ1ADAAAAAMMQ1AAAAADAMAQ1AAAARM2WnegiAEmFoAYAAICo7dxfnegiAEmFoAYgaSzctDvRRQCAlPXA2NWJLgKQVAhqAJLGlvKqRBcBAAAgJghqAAAAAGAYghqApMEfsgMAgGRBUAMAAAAAwxDUAAAAAMAwBDUAScOSlegiAAAAxARBDQAAAAAMQ1ADAAAAAMMQ1AAkjYM19YkuAgAAQEwQ1AAkDYIaAABIFgQ1AAAAADAMQQ0AAAAADENQAwAAAADDENQAAAAAwDAENQAAAAAwDEENAAAAAAxDUAMAAAAAwxDUAAAAAMAwBDUAAAAAMAxBDQAAAAAMQ1ADAAAAAMMQ1AAAAADAMAQ1AAAAADAMQQ0AAAAADENQAwAAAADDENQAAAAAwDAENQAAAAAwDEENAAAAAAxDUAMAAAAAwxDUAAAAAMAwBDUAAAAAMAxBDQAAAAAMQ1ADAAAAAMMQ1AAAAADAMAQ1AAAAADAMQQ0AAAAADBNVULMs62+WZeVblrXGsqy/x6pQAAAAAJDKWhzULMs6V9IfJF0s6XxJ37Ms6/RYFQwAAAAAUlU036j1l7TUtu1Dtm3XS5or6c7YFAsAAAAAUlc0QS1f0lWWZR1tWVYXSbdKOik2xQIAAACA1JXe0g/atr3WsqznJU2TVCVplaQG7/ksy7pH0j2SdPLJJ7d0dQAAAACQMqL6MRHbtj+0bftC27avlrRP0gY/87xn2/ZA27YH9u7dO5rVAQAAAEBKaPE3apJkWVYf27bLLMs6WY6/T7s0NsUCAAAAgNQVVVCTNNayrKMl1Un6s23b+2NQJgAAAABIaVEFNdu2r4pVQQAAAAAADlH9jRoAAAAAIPYIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIaJKqhZlvUPy7LWWJaVb1nWSMuyOsWqYAAAAACQqloc1CzLOkHSfZIG2rZ9rqQ0ST+LVcEAAAAAIFVF++hjuqTOlmWlS+oiaUf0RQIAAACA1NbioGbbdomkFyVtl7RT0gHbtqfFqmAAAAAAkKqiefSxh6TbJZ0q6XhJXS3L+pWf+e6xLCvbsqzs8vLylpcUAAAAAFJENI8+Dpa01bbtctu26ySNk3S590y2bb9n2/ZA27YH9u7dO4rVAQAAAEBqiCaobZd0qWVZXSzLsiQNkrQ2NsUCAAAAgNQVzd+oLZU0RtIKSXlNy3ovRuUCAAAAgJSVHs2Hbdt+TNJjMSoLAAAAAEDR/zw/AAAAACDGCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAAABiGoAYAAAAAhiGoAQAAAIBhCGoAAAAAYBiCGgAAAAAYhqAGAAAAAIYhqAEAAACAYQhqAAAAAGAYghoAAAAAGIagBgAAAACGaXFQsyzrTMuyVrn9V2FZ1t9jWTgAAAAASEXpLf2gbdvrJV0gSZZlpUkqkTQ+RuUCAAAAgJQVq0cfB0nabNv2thgtDwAAAABSVqyC2s8kjYzRsgAAAAAgpUUd1CzL6iDpNkmjA7x/j2VZ2ZZlZZeXl0e7OgAAAABIerH4Ru0WSSts2y7196Zt2+/Ztj3Qtu2BvXv3jsHqAAAAACC5xSKo/Vw89ggAAAAAMRNVULMsq6ukGySNi01xAAAAAAAt/nl+SbJtu0rS0TEqCwAAAABAsfvVRwAAAABAjBDUAAAAAMAwBDUAAAAAMAxBDQAAAAAMQ1ADAAAAAMMQ1AAAAAAkHctKdAmiQ1ADAAAAkHRO690t0UWICkENAAAAQNKxbTvRRYgKQQ0AAAAADENQAwAAAADDENQAAAAAwDAENQAAAAAwDEENAAAAAAxDUAMAAAAAwxDUAAAAAMAwBDUAAAAASadT+7REFyEqBDUAAAAASSc9rW1HnbZdegAAAADwx7YTXYKoENQAAAAAwDAENQAAAAAwDEENAAAAAAxDUAMAAAAAwxDUAAAAAMAwBDUAAAAAMAxBDQAAAAAMQ1ADAAAAAMMQ1AAAAADAMAQ1AAAAADAMQQ0AAAAADENQAwAAAADDENQAAAAAwDAENQAAAAAwDEENAAAAAAxDUAMAAAAAwxDUAAAAAMAwBDUAAAAAMAxBDQAAAAAMQ1ADAAAAAMMQ1AAAAADAMAQ1AAAAADAMQQ0AAAAADENQAwAAAADDENQAAAAAwDAENQAAAABJx050AaJEUAMAAAAAwxDUAAAAAMAwBDUAAAAAMAxBDQAAhK1v766JLgIApASCGgAAAAAYhqAGAAAAAIYhqAEAgLBZiS4AAKQIghoAAAAAGIagBgAAAACGIagBAAAAgGEIagAAAABgGIIaAAAI2wk9uiS6CACQEghqAAAgbP8Y3C/RRQCAlEBQAwAAYUtvR9cBAFoDtS0AAAAAGIagBgAAwmYx4jUAtAqCGgAAAAAYhqAGAAAAAIYhqAEAgLDZdqJLAACpgaAGAAAAAIYhqAEAAACAYQhqAAAgbLZ49hEAWgNBLUJdO6QluggAAAAAkhxBLUIWA8gAAABIkv51wxmJLgKQtAhqAAAAAGAYghoAAAibJZ4sAYDWQFADAAAAkHTa+riPBLUIcR8RAAAAQLwR1AAAAADAMAQ1AAAAtEgbf7IMMBpBDQAAAAAMQ1ADAABhs/kOBQBaBUENAIAkcNaxR7Tauu4ccEKrrQtm40fWgPghqAEA0Mbd+d0T9KMLT2y19fXt1bXV1gUAqYqgBgAAgBbhQVggfghqAAAgbBYPuwFAqyCoAQAAAIBhCGoAALR1fMkFAEmHoAYAAIAWsfkjNSBuCGoAACAidM4BIP4IagAAAABgGIIaAAAAABiGoAYAgB9P3HZOoosQtl9ecnKrrcuWbdTYWT8c0HoDfcMMJ/bonOgiAK2CoBYpflkLSa5rh7REFwEpqle3jtrw9C2JLobLjy5sOwHgiE7tE12EFhvc/5ioPn/bBcdLkq7q1ysWxUGEEhHbn77j3FZfJ5AIBLUIkdMAIH4sKtkWac3dxoDXANA6CGoAACQBqxVTLr/6CADxR1ADAKCN45tIpBLuEyBVENQAAPCDziAQGt+uAvETVVCzLOsoy7LGWJa1zrKstZZlXRarggEAgPDZ9JgBIKmkR/n51yRNsW37R5ZldZDUJQZlAgCkIB7fA9oerlsgfloc1CzLOlLS1ZJ+I0m2bddKqo1NsQAAAEJz5gS+UASQbKJ59PFUSeWSPrIsa6VlWR9YltU1RuUCAABhS92vNfhGB0CyiiaopUsaIOlt27a/K6lKUqb3TJZl3WNZVrZlWdnl5eVRrC4+rjydATIRf7++9JREFwFoE9Lb0es2nS3bNch0LPx9cD+d1LNzWPPSZpvnxwNPavV1XnhKj1ZfJyJ3TPeOrn//8drTElKGh4f0T8h6YyWaoFYsqdi27aVNr8fIEdw82Lb9nm3bA23bHti7d+8oVhcfJ/YIr3FA8sk4OvCfVH735KNiuq6n7jg3pstLdndfkaHXf/7dRBej1dD5bGZZlnp0aR/VMgqHD1HXDmkxKlFyufW8Y1v0uT9f59nJcu+AeRvcv48k6YiO4f11xbknHKn5D1wf1rz/uvGMoO/36ha4XIiP47p3avV1du8UuI6ItF+3ZOigaIsTlo/uvigmy5n4lytjspx4O6pLey140HFdp7ez9ODNZ8V0+eedcGTIed765QBd2vfomK63tbU4qNm2vUtSkWVZZzZNGiSpICalAhKMe/oA2tqvKLbWgNdWuDVkQirStnXMACCYaH/18a+SPm/6xcctku6OvkhA4tHUA0Az93BmU0MCQKuIKqjZtr1K0sAYlQUAXNratxmIHt9kI1pUG0BqSJUfEYpqwGsAAAC0rlTppKJt48ZJ9AhqEWqtvwEAAAAA2jq6zi1HUAOABONvfhAtOkKpdR1xuIHUkPJBjcYNAJAqkvFRJPcfOkmVNp2ne4DUkPJBDYB5wv75bwBAQpEZgfghqLXATecck+giIAbuG9SvVdd3xwXH6+zjurfqOv0J1ahe2c8x+PIPB5zYCqUBmv3sopMkSfffFNuBUVuqc/vUHDT7rstO8Zl22WnNg8Ym8lu5vr27JW7lBrnk1J6SpB9daEY9HckA85ef1rYHIJaktHah0+lvrzg1Lus+uluHmC4vXn3a+286M/RMLfTrS33rqGRFUGuBd389UIXDh7Tosx3S2ynzltCdkBN7dG7R8lPFTwZG3zjdOeBEHdWlfdTL+eIPl4Q136s/+64m/e0qj2kd0lr/Etz6XPBz9+SeXVQ4fIgGnHKUa9rzPzwv7OW39NpobZf27enxunD4kIRdd7Hs+LZPi/z29mV9I+s4eTeSVzWF+2hd1NT5/MUlJ7um9TmiY0yW3RLpCbg+4y2cc+2J28/VW78c4DHt+KPMaJOO7NxeD9/a3/Xau75Jxkc7/XEej4tP7RliTunfN54R93p58UODwp73w7suatE6rj+rT0Tzz3/guhatJ5Rv/nKFNj97q8e0S/wch0e/f3bY+/2sY48Ia77C4UPUKQY3kNLdguY9V58WcL6W9lEKhw/RLy/xDVO5j94Y8nPheOqOc1tUrrYo+VohAFHhbx8ABGNqFZEqIa2tM/X8Qeyl0g/8xAtBDQASLJYdF/6+D6mGjj8QjfiHqXi0S6ly2RPUAABo41Kl0yIRzACkDoJaSjVvAOCLx1MAIDw8YovWRFAzFHcMYRIep0Mw8ey4UBcC5uMyRatLkcaBoAYAAAAAhiGoAQCAoNrCveuUfCQtFbc5CaXkuYuwENQAIJm0hR41EiYZ/x4xFU/5VNzmeGlrT9DZpLqUkvJBLdIL9K7LM6Jboe050GAwf74u8CCELdHWKqO2om+vbrr7ioxEFyMi5594ZKKLoL69ugZ8L97n6rHdO/kdjPNXl/pOa2tuOfdYSeEPoOr4zHERrePSCAfIToT/uya29WckWjLoeLjOPaG73+m9vAYGD3Z9RcrfgObBBsK97YITJEn/uuGMmJUhXH8f3K/V12m6y0+PbED6/sf5P8di4VeXnhx6JknXnNHbZ9rtFxwf8nM/vvBEVz3eo2uHyAoXpt5e15oUXpt1xjHh18nxFm7Uu+Cko6JaT3o7Rz3x2ytPdUxo5X7o2XE8l1tLyge1UAb3P0aFw4e4/vtnkIbHfUT19//fQNe/j+zc3mO+tKag9pvLM1Q4fIj6+LnoJen+m84Kui739c3597W6c8AJPvMNv/M817xbn/Md8d19lPgfXXhiwPV5O/u47j5lSKSbzzk24Huv//y7cV33sUd20mPfPyeu63D6+cUnebwe+8fLXP/+TYCbCIXDh+iY7p7n2IS/XKnC4UN0ad+eEa0/4+guEc3/p2ubO8vdOqZ7XEuz/n2tx+vC4UP0yJD+ES0/kD+6rfeEozp7vFc4fIiWPDRI3z//eJ/z916vzr2/BjkQ7+vho7sv8ti21vCX607X9Wf1kST18+oUfHnPpR6v/zaouUM7qH+fiNbznROPdNUd3Tult6SocXffoH4++9399Q++61tfxsrFp0Z2XQXiXl7nefTo93zrmmvO6K3unZrbmd9cnqFnfnBe0OWGe07ecu6xGvG7S3ymp/sJas7l3tZ0bf3milNVOHxIVOfI+D9dHtH18+vLMjzmdz8WH919kf5y3emSHCGycPgQ9eoW+Br318kLVRbnPhh+p+f+X/7w4LDKP+bey6KqCxcPvd6nPANO7hHRMpzteyDe9aRlWbL8JJXbzvcMVvdec5qevsP/eem9rz/57cUer1/96QW6/YLg12y3jul64cfn695rTlPh8CHq1jG6uinQzfIjwjif85+4yWead1sUiWDXrPvNm1i2NYXDh6jfMd0khbfN/qS1s1Q4fIgybwncnw22/mjMvf9aZcTwhlWiENQAhC2aBy54XAOpIlGnOg9NIFnxRFBgqdq0psopQVAzVCJ+Dj1VL/a2JUFVU6rUiGiRZPy7J1NxwwOpKJzTnmsjfugCJA5BLUlwtyk1hdsuRR38af/aBAITAADJg6AGAAnGjWAAyYZqLXn4+xtEtA6CGpJeMlUv1JWRS9XHYVJ1u1NZPI94W6h7TPpG2ZySxJ6/c8Hf6UEdBESPoAYASYQ7n0i5UyDc7bX9/hNtgEkhPNmQp81GUANSQMp13NzQBgFwSuW6EEDbQ1BLcjRKAIBUYNI3AyaVBUDblfJB7dK+Rwd9/+ozegV8L9gAgKf2ah4Y+HvfOc7jvXOOP1KSdFGGYyDOW8/zfF+Sbj438ADO/gbh9R5UO5hA5T7n+PBHcB989jFhzxsu7/0UTLDj9p0Tj/R43aNLB595Lmv6fDjrPKmn5yCVF5x0VDhFDMttFxwfeiY3oXJ3jy7+z4NbzvW/ndedGXig4/5uA5Ae1bTcm4IMLO7PhadENtCqe+fm9D7dIvpsOMuM1LlhXhP+boic0tNzcPBTggwWPjCM/dQ3wMCdA04O73z0Hmz11CgGAu3eqb06tnc0H987/3hde0boAbMvyojsXJAc12mgc9ddr26+13jIZZ/WXIf8ZOCJEX8+mHDPudN6h3cM3Ovm4/0Mmuu9OtuWTuzhf3DdK08P3Ka569tUtiv7+c7vrFPPO8FR1/b3MzC0u++dH1k9F4pzvU7+ftW2a4c0SZ51XKB94s/5Xu2Iu5N7Br6Wg81zQxjt5nFNx9d7G506NA00fvnpjvP3jGM9B7aPdpBnSbq0r++A7e0CND7HHdlJktTezwDo3oK1B6H6FJH0cQKJZNDmq/yc904d0kNva/s0zx0Wqo73Po6SdEx3R1/v1vMia3djIZrBuYPp1D6y2BGsjza4v2e7491Xi8U5Y4Lor+g27rbzj9flpx2tgU/PkCQVPHmTzn50qiQp55HB6tk1cAdg2UOD1f/RKR7TCp50jEbfpUPzrn3itnP0+dLtrtcXn9pT2Y8MVq9ujotw2PfO1vLCvVqzo0Jv/mKALj/taHVvOsGG33meMsfluT6b/8RNSnerMdc+ebN2H6zRUX7CiD95j9+o9mntdNaw5nL3P6671u6s8KhE1zxxk/YcrFWf7h095pWkpQ8NUu9uvmExmA/vGqjffZItSXrw5rP0/JR1Hu/nPnqjunRM0zM/OE/nPzFNknREx3RV1tSrX59u2lh20DWvc9+t21Wp9+Zt8VnX6Hsv05mPOMq8YtgN2nngsCRHx2NLeZUk6YO7BkqSHv/+OfpsyXaPzy/MvF5/+WKFJOnjuy/Sab276ar/zFaPLu01/Z/X6Iul27WqaH/Abc17/Ead97hjG9Y/fbNq6hv9zpf72I3q2iFND9x8pnbur9bqkgMa9nV+wOVKUrumRPDTgSfpwVvO0pbygx7vL8ocpIrqOnXpkOYqgyQ9PKS//rdwq8/y7rm6r2459zhd/cJsn/cGnNx8PhzZub1WDrtB3Tu397vPJce56d2YD+p/jGb88xoNfnluRI8gWnLc0Mh+ZLDr2nTKfexG1zmy7OFBamyUausb1fuIjnph6nrXdv784pM1ctl270WHrWfXDhqY0VOz15d7TP/jtafp7Tmb9bsrT9VvrzzVJxyveeIm7TtUqxN7eHbUpv79atU1NHocF6ebzj1Wr8/a5Nimhwbp4mdn+szz9A/O1S/eX+oz/bk7v6ObXp3ndxvyn7hJaZalQ7X1Otrtms15ZLB2HqgOsOWO/VpxuE51DbZueW2+JMe11L1Tuiqr63Vk0zavevQGdeuYrrR2lu4ccIIu9DpWXTqk6VBtgyTps99f4rouw5H72I3q3D5Nae0sfbyoMOi8S4YO0t6qWr/7zWfbHhqkDuntdGTn9npgzGpJ0vM//I5+f1VfHayp151vLQr6eX/nZEt418XrnrpZpRXV6tG1g77jdo6sfvxGdXTrGJ7Us4tyHhnss68lzxs5J/XsovYW+mgAABLaSURBVCVDB+nS52Y2ve6sr/90RdA2zd1Zx3YP2AY6b9yM+eNlqqlvVIe0dqpr8F/PSdKTt52jU4/uqmcmrQ1r3aFcEuIGqyTlDLtBZRU1OqlnZ708fb3qGmydHORmyZh7L9OMtWV6Z+5mSdJX916mH7zp/1yY9g/HtTx7fbnuG7nS7zwZvXzX9dYvB6jfw5MlSentLNU3NteKqx69QbX1jerTvVPAbVw57AZ1ap+mRttW147puqpfb/Xq1lEFT96k3ZW1OqJTuo7oFF7n9I4LjtcTt58ry5IaG21t23NIt7+5UJL044En+cxf8OTNKtl/WL26dtQ78xz76E/Xnqb7BvWTFDq8uPd5/Pn7oH76zeUZGvDUdL/vH9k58psx7tY8cZPaWZbqGh3na1VNvW55bb7KKmv8zv/hXRfptZkbJEn3Deqn12dulOQ4Th3T04Ku6/gjO3nM430Ne3vpx+dr36FaTczdoZ9ddJK+XF4kSZp7/3XaU1WrPn5uzkdqxbAbVN/YqIufCV5HvvmLAbrmzN4e/cxY6piepkWZ1+uITul+20Jvr/z0Al3dr7ceGLvaNc3Zz/7TtafrRxeepIM19ercIU1Hd+3gqk9XDrsh7H6x6VI+qEnyqDzcA9bRIcJI5w6+F6v7553S/dxpcl9nWjvLdYeye+d09XBrGL0rP++7ZZ07pOmkMO7uOTkr8e6d0lVRXS+p+c6Pe0e6a8d0dQ1wZ+6YpoYkEu4XTDc/d7WcHb8jOzdvb89uHVRZU680rwrDue+871g5uVeQPbt2cAW1julpap9mqa7Bdt3983ds3O8kHdGpvesYtE9rF7Shcf+Me1kCVerOuz19juikPkd0UvG+wyGX7fzm5uzju6tn1w7a4pkh1LlDmt/z0nsfNi/PCtp5cdcjRAcv0J1c5x3XlvC3v93vkvU5wnPZR7t9s9LFz36IRKBvsJwNbteO6X7vOga6djq1T1On9qHL5O/6kKT0dv4b+mDtqfOYeJ8TR3frGDSoOc9Jd84Ou/t54H5d+6svu3dq7wpqoTo33iK5G5qe1s7VwQ3F33yWZemM/9/encXGdZ13AP9/sw85C/chRcqUSFHUYtlKRMiKrQR14tiOH+oWCNC0DzFao3lJgRboS4o8pK99aAMUbQ20aJDYLeqi6ZIgbeE6jtGiaZRYSWRZEiWL2kWOuHP2nacP99zRneGdhVrIK/H/Ay44PLPc7TvfvWfmznyxMG4sZ1o+v50c0I76E+qA143R3o0xF7E58W51bDINWvpewONu+3ntzsea35rFtsftqlmWVkJ+D9KFctuPtxPwuqu5zfjErflbRU/0dtT0pWbxavbl3jYHvaZmnzq1c1JZn4PNWOzwefBE7+ZO57xuV00fa7W9A143xvtrr3Lo9Htq9ntfyIeldNH2+a36jcslbb+JcC/MnBxE63gFas+9fJZzjXb2U7TuMXZ92Ko35MNqtliznOYyPqhPttrdtqGA54F8KtuM3VUBjXjdruoHFybzPNvlkoZ5pdX5yqNkx1/6SM7/+fpGv2LH7wAQORu/I/v4sLu8kBrbicen+nXegZvgscVcvn04UCMiIiKi+8KBGdGDx4Ea0SbtxHdKiYiIiGhrcaBGRERERPdF8V1MogeOAzUiInoo+LUGop2DwzSiB48DNSIiIiIiIofhQI2IiIiI7guvfCR68DhQs7BWNQ+3WUfi6ZEoAKC/zYKEz+2zL9R5dHcXgI11oaw10va0qHd1eFd0Q1ujGmvPjvcBALwewbHRHgBAj679YbfufaH7q0lh1ps5MdbTcj1Mx/cYy/XcuP022x8LV28f0fvBWgfH3J9mjbpjo114bl/fhsfttamXdUwXe+7t9FVrUJkFSPcN3K0l8/xkf/X203oftsOutthwd+vaIgeHIgCAUb0NrbVpDgyGbZ/Tjmf29lRvW7erqa9FfAfratJY97FH16B5tsF+tBrrN/bFfsu6mH3jeM0y1tbzMZl1fvbHQtXt8dmDAxte36q+voy57CfGemvqBo3r504MGK9rjYPNsO6nJ4eN/WnW5hnuCjasl9aoD1przEwMhDGi48guHwB3c5C1zkyrujnt5sN6LxyKNb2/w+euiZ36/NeKuf0elFbbwey3T43Yb1uTmQvarSE42mZOtPq8Zduax6G9OkbtcsHUnp4NbZthre/XrB5YIyNt5DczF1tzRW+nkXua1ZMaiBiPOfqEfQ42Y94lgolYbf89MWZsl6DXjcm67Ta1p7vm//o+36wQcX0txYC3dpudnOhr+Fy7eVjPT9rV7Lh9aFdt37GLfWvOtZrU27C+rtqn69bpyLB9P2lWTHmiQV611qwz490svG72x0+N22/TRnVET+hjen1NtU/p9v1161l//mbdPkd3d8On+8Wx0ebnAoN1tRwHo4HqsWkyFm55rKxf3mOj3dhlyTXjNse5eif33d1W1vOIWKQ2ps1zjhd1vmm0f+7F1Ght/2qULzdbS27S5hzmUSZb+eXPqakpdfr06S2b32bcWski2uFFJODF7FoOnT53W4UN04Uyzt5aw+Fd0WrRZtPH8ynkSxU8NdKFlUwRF+NJfOKJbtuCxJV1hcsLKRwY3HjicWEuiZDfg65Ob9PCiUop/PfHiwj5PXC7BF63C082SJT5UgWzazmM94dQqqzj2lIG+2Nh23W/vZpF2O/FxwspDIT9G4qyXlvKIFMo48Pba/iNqd2YjqcQ9LnQ0+nH3FoOi+kCnp8cwLWlDGIRPzp8HlyYSyIc8MDlElQqqqbo8rWlDJbTBRwZieLWShZjfSFcmk9hpDuI1Uyp+lilFC7Ek3CJYDIWxp1kHgGvGz2dvpr9CQCX51MY7e1EZV0hnshhzHKAWV9X+Lczs/jcgRiS+RJ293SgVFnH1cVM9cA9s5DGSHewmiA/vLWG2bUcXjgYqxbGTBfKWEoVsKevE4upApRStsV1b61kEQl6bQv6/ujiPKJBH3xuFypKIeB1YTASwK2VHHpCPuyKBjAdT9UcZN85fwddQS+O7+2pqTm3nC6gVFHVgpDNlilbLGM+WUC2WMahoUj1de4k8ri8kMKnJ+4OSJfSBaxlS7i2lEGxvI79sRD6Qv6aE/9kvoREtlR9o+DKYhrDXcG2Cj5fmEvi4FC4ugyZQhmLqQIGIn7MJwvY29eJVL5UEwtW5+cSOKQPLhfiSRzeFW3ahxLZElKFEka6jdcqltfxn+fi+NWnd0FE8O6FeRzf0wOXC9V5np9LNBwItZLKl7CcLiJXqmDfQKja96xxcWUxjXOzCTx/YAA3lrLweVyYHAzj2lIGK5kCkrkyDu2KIJkrYSIWRipfwo9nlvDS4UGICKbjSUzGwnDVnaBY+yAA/O/lJewbCGEwGsDl+RRurmRxZDhaEyObyYfxRA750jo8LkEqbyzjD87O4YWDMQS8bqxli/jg+iqGu4KIdnjRqXNhKl9Gpli2zX+A0WeCPjdWM0X0dPqQypexrmPZ7HPm/P0ed83gezldwGK6gHDAu+GA/4ubq4gGvTUnnDMLKQS8bvg8LgyEA1jJFFEoV1CuqOr+yRUreOvUdTw5HEV/yI/VbAmRoAduEawr40QpnsgjEvQiXSijw+vG2dkEDg4acW3th/W5CjD6WNnSd+2UK+v494/i2DcQwoHBSPVktL7/XF/KIJEr4eBQpKaIL2DkrDd/ch0vHR7EfDKPrqAPCqphbJ+bTcDtkurJ22b938wSZhbT+MxEP/xeF1wicLukeqJo5o3+sB83V7IA7p4sJ3IlJHN3c8pCMg8Rqb5JeulOCuP9nfDYDCJzxUo175vHDXMd86UKbq/mqoOwvzt1A8+O92JMHxvfm15AKl/C0d1dGIwGNhQqv3gniU6fB0oZtaasb47OLKSwli0hEvRW12MhmQcECPu9uL6cwUqmiINDEduCxGZOSOZKG2KkmZVMEVcX05gYCNecl8yt5RD0uhFP5GtixPT+xQUcGYlW90e2WMZ0PIXhrmBNLNZvQ1OhXMFbP7mBX5kcQNDnxlAkgLc/uIVnxno2DOquLqbR0+nDhXgS+2Ph6jytuX05XUCuVEGmUKkei68vZdAX9iPk9yCRLeHcXAJHd3fhTjJve4wx19muALJ1399czuJOMo/+sL+aI63rWZ87ze0znyygWF7HeH8nsqUKTl9fwcl9/Rv6msncp+lCGaeuLGMoGsCzetBk9t1cqVI91jXy45klXF1M48BQBEd3dyFbrFT7RypfwpXFDDp9bmSLFcQiger+++XN1Wou/OWtVUzGwugN+TEdT6KyrjacMyqlMB1P4eBQGBfiSRwYjOD9iwsorys8NRJFtljGUDSI752ZQ3eHFycn+rCSKW44T7STKZQRT+SxkMzj4p0UfuuZJxDwuvHR7UT1mGeajiexu6cDi6nm2+Xmchbdnd4N/dSJROTnSqmplo/jQI2IiIiIiGhrtDtQ46WPREREREREDsOBGhERERERkcNwoEZEREREROQwHKgRERERERE5DAdqREREREREDsOBGhERERERkcNwoEZEREREROQwHKgRERERERE5DAdqREREREREDsOBGhERERERkcNwoEZEREREROQwHKgRERERERE5DAdqREREREREDsOBGhERERERkcNwoEZEREREROQwHKgRERERERE5DAdqREREREREDsOBGhERERERkcNwoEZEREREROQwHKgRERERERE5jCiltm5mIosAbmzZDNvXB2BpuxeCqAnGKD0KGKfkdIxRcjrG6M4wqpTqb/WgLR2oOZWInFZKTW33chA1whilRwHjlJyOMUpOxxglK176SERERERE5DAcqBERERERETkMB2qGv97uBSBqgTFKjwLGKTkdY5ScjjFKVfyOGhERERERkcPwEzUiIiIiIiKH2dEDNRF5WUQuiciMiHxtu5eHHn8icl1EPhKRMyJyWrf1iMi7InJZ/+3W7SIif67j86yIfNLyOq/px18Wkdcs7cf068/o58rWryU9akTkWyKyICLnLG0PPS4bzYOoXoMY/WMRmdX59IyIvGK57490vF0SkZcs7bbHfRHZKyI/1e3/KCI+3e7X/8/o+/dszRrTo0ZEdovI+yJyQUTOi8jv63bmUrpnO3agJiJuAH8J4AsADgH4TRE5tL1LRTvE80qpo5af3/0agPeUUhMA3tP/A0ZsTujpKwDeAIyEDOAbAJ4BcBzANyxJ+Q0Av2t53ssPf3XoMfBtbIyVrYjLRvMgqvdt2Oezb+p8elQp9R8AoI/lXwJwWD/nr0TE3eK4/yf6tfYBWAXwum5/HcCqbv+mfhyRnTKAP1RKHQJwAsBXdXwxl9I927EDNRjBP6OUuqqUKgJ4G8Cr27xMtDO9CuA7+vZ3APyapf1NZTgFoEtEhgC8BOBdpdSKUmoVwLsAXtb3RZRSp5Tx5dM3La9F1JBS6n8ArNQ1b0VcNpoHUY0GMdrIqwDeVkoVlFLXAMzAOObbHvf1pxKfBfBd/fz6eDdj9LsAPscrFciOUiqulPqFvp0CMA1gGMyldB928kBtGMAty/+3dRvRw6QA/JeI/FxEvqLbYkqpuL59B0BM324Uo83ab9u0E92LrYjLRvMgatfv6cvGvmX51GGzMdoLYE0pVa5rr3ktfX9CP56oIX2J7CcA/BTMpXQfdvJAjWg7nFRKfRLGJQ9fFZHPWO/U75Lxp1jJUbYiLhn7dA/eADAO4CiAOIA/3d7FIQJEJATgnwH8gVIqab2PuZQ2aycP1GYB7Lb8P6LbiB4apdSs/rsA4F9hXIozry9pgP67oB/eKEabtY/YtBPdi62Iy0bzIGpJKTWvlKoopdYB/A2MfApsPkaXYVx25qlrr3ktfX9UP55oAxHxwhik/b1S6l90M3Mp3bOdPFD7AMCE/qUnH4wvHn9/m5eJHmMi0ikiYfM2gBcBnIMRd+avOr0G4Hv69vcBfFn/MtQJAAl9acM7AF4UkW59qc+LAN7R9yVF5IT+DsWXLa9FtFlbEZeN5kHUknliqv06jHwKGHH1Jf2LjXth/OjCz9DguK8/gXgfwBf18+vj3YzRLwL4kWIBWrKh89vfAphWSv2Z5S7mUrp3SqkdOwF4BcDHAK4A+Pp2Lw+nx3sCMAbgQz2dN2MOxvcd3gNwGcAPAfTodoHxC2VXAHwEYMryWr8D4wvyMwB+29I+BeNk5QqAv4Auas+JU7MJwD/AuHSsBON7D69vRVw2mgcnTvVTgxh9S8fgWRgnqkOWx39dx9slAF+wtNse93V+/pmO3X8C4NftAf3/jL5/bLu3BSdnTgBOwrjk8CyAM3p6hbmU0/1M5g4mIiIiIiIih9jJlz4SERERERE5EgdqREREREREDsOBGhERERERkcNwoEZEREREROQwHKgRERERERE5DAdqREREREREDsOBGhERERERkcNwoEZEREREROQw/w+FZ9vjg+OgeQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1080x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15, 9))\n",
    "data7['score'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 314,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/matplotlib/font_manager.py:1328: UserWarning: findfont: Font family ['HiraginoSansGB-W3', 'PingFangSC-Regular', 'Microsoft YaHei', 'SimHei'] not found. Falling back to DejaVu Sans\n",
      "  (prop.get_family(), self.defaultFamily[fontext]))\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x648 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15, 9))\n",
    "data7['numberofreviews'].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 结论：从上面两个图可知，评分高与评论数量之间没有太大的关系。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
